Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgCatCommand.java @ 683:98ff1fb49abe
Update commands to use changeset Nodeid and int in uniform way, clients of core.* classes shall not go back and forth from int to Nodeid
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Wed, 24 Jul 2013 16:40:15 +0200 | 
| parents | 78a9e26e670d | 
| children | b286222158be | 
   comparison
  equal
  deleted
  inserted
  replaced
| 682:f568330dd9c0 | 683:98ff1fb49abe | 
|---|---|
| 21 import static org.tmatesoft.hg.repo.HgRepository.TIP; | 21 import static org.tmatesoft.hg.repo.HgRepository.TIP; | 
| 22 | 22 | 
| 23 import java.io.IOException; | 23 import java.io.IOException; | 
| 24 import java.nio.ByteBuffer; | 24 import java.nio.ByteBuffer; | 
| 25 | 25 | 
| 26 import org.tmatesoft.hg.internal.CsetParamKeeper; | |
| 26 import org.tmatesoft.hg.repo.HgDataFile; | 27 import org.tmatesoft.hg.repo.HgDataFile; | 
| 27 import org.tmatesoft.hg.repo.HgRepository; | 28 import org.tmatesoft.hg.repo.HgRepository; | 
| 28 import org.tmatesoft.hg.repo.HgRuntimeException; | 29 import org.tmatesoft.hg.repo.HgRuntimeException; | 
| 29 import org.tmatesoft.hg.util.Adaptable; | 30 import org.tmatesoft.hg.util.Adaptable; | 
| 30 import org.tmatesoft.hg.util.ByteChannel; | 31 import org.tmatesoft.hg.util.ByteChannel; | 
| 72 * | 73 * | 
| 73 * @param fileRevisionIndex - revision local index, non-negative, or one of predefined constants. Note, use of {@link HgRepository#BAD_REVISION}, | 74 * @param fileRevisionIndex - revision local index, non-negative, or one of predefined constants. Note, use of {@link HgRepository#BAD_REVISION}, | 
| 74 * although possible, makes little sense (command would fail if executed). | 75 * although possible, makes little sense (command would fail if executed). | 
| 75 * @return <code>this</code> for convenience | 76 * @return <code>this</code> for convenience | 
| 76 */ | 77 */ | 
| 77 public HgCatCommand revision(int fileRevisionIndex) { | 78 public HgCatCommand revision(int fileRevisionIndex) { // TODO [2.0 API break] shall throw HgBadArgumentException, like other commands do | 
| 78 if (wrongRevisionIndex(fileRevisionIndex)) { | 79 if (wrongRevisionIndex(fileRevisionIndex)) { | 
| 79 throw new IllegalArgumentException(String.valueOf(fileRevisionIndex)); | 80 throw new IllegalArgumentException(String.valueOf(fileRevisionIndex)); | 
| 80 } | 81 } | 
| 81 revisionIndex = fileRevisionIndex; | 82 revisionIndex = fileRevisionIndex; | 
| 82 revision = null; | 83 revision = null; | 
| 125 revisionIndex = BAD_REVISION; | 126 revisionIndex = BAD_REVISION; | 
| 126 revision = null; | 127 revision = null; | 
| 127 cset = nodeid; | 128 cset = nodeid; | 
| 128 // TODO [2.0 API break] shall use CsetParamKeeper instead, but Exception thrown would break the API | 129 // TODO [2.0 API break] shall use CsetParamKeeper instead, but Exception thrown would break the API | 
| 129 return this; | 130 return this; | 
| 131 } | |
| 132 | |
| 133 /** | |
| 134 * Select file by changeset | |
| 135 * @see #changeset(Nodeid) | |
| 136 * @param revisionIndex index of changelog revision | |
| 137 * @return <code>this</code> for convenience | |
| 138 * @throws HgBadArgumentException if failed to find supplied changeset revision | |
| 139 */ | |
| 140 public HgCatCommand changeset(int revisionIndex) throws HgBadArgumentException { | |
| 141 int ri = new CsetParamKeeper(repo).set(revisionIndex).get(); | |
| 142 return changeset(repo.getChangelog().getRevision(ri)); | |
| 130 } | 143 } | 
| 131 | 144 | 
| 132 /** | 145 /** | 
| 133 * Runs the command with current set of parameters and pipes data to provided sink. | 146 * Runs the command with current set of parameters and pipes data to provided sink. | 
| 134 * | 147 * | 
