Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgManifest.java @ 368:8107b95f4280
Update Javadoc with 'revision index'
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 16 Dec 2011 16:00:57 +0100 |
| parents | 2fadf8695f8a |
| children | 155c1893bda4 |
comparison
equal
deleted
inserted
replaced
| 367:2fadf8695f8a | 368:8107b95f4280 |
|---|---|
| 125 */ | 125 */ |
| 126 public void walk(final Inspector inspector, int... revisionIndexes) throws HgInvalidControlFileException{ | 126 public void walk(final Inspector inspector, int... revisionIndexes) throws HgInvalidControlFileException{ |
| 127 if (inspector == null || revisionIndexes == null) { | 127 if (inspector == null || revisionIndexes == null) { |
| 128 throw new IllegalArgumentException(); | 128 throw new IllegalArgumentException(); |
| 129 } | 129 } |
| 130 int[] localManifestRevs = toManifestRevisionIndexes(revisionIndexes); | 130 int[] manifestRevs = toManifestRevisionIndexes(revisionIndexes); |
| 131 content.iterate(localManifestRevs, true, new ManifestParser(inspector)); | 131 content.iterate(manifestRevs, true, new ManifestParser(inspector)); |
| 132 } | 132 } |
| 133 | 133 |
| 134 // manifest revision number that corresponds to the given changeset | 134 // manifest revision number that corresponds to the given changeset |
| 135 /*package-local*/ int fromChangelog(int revisionNumber) throws HgInvalidControlFileException { | 135 /*package-local*/ int fromChangelog(int changesetRevisionIndex) throws HgInvalidControlFileException { |
| 136 if (HgInternals.wrongRevisionIndex(revisionNumber)) { | 136 if (HgInternals.wrongRevisionIndex(changesetRevisionIndex)) { |
| 137 throw new IllegalArgumentException(String.valueOf(revisionNumber)); | 137 throw new IllegalArgumentException(String.valueOf(changesetRevisionIndex)); |
| 138 } | 138 } |
| 139 if (revisionNumber == HgRepository.WORKING_COPY || revisionNumber == HgRepository.BAD_REVISION) { | 139 if (changesetRevisionIndex == HgRepository.WORKING_COPY || changesetRevisionIndex == HgRepository.BAD_REVISION) { |
| 140 throw new IllegalArgumentException("Can't use constants like WORKING_COPY or BAD_REVISION"); | 140 throw new IllegalArgumentException("Can't use constants like WORKING_COPY or BAD_REVISION"); |
| 141 } | 141 } |
| 142 // revisionNumber == TIP is processed by RevisionMapper | 142 // revisionNumber == TIP is processed by RevisionMapper |
| 143 if (revisionMap == null) { | 143 if (revisionMap == null) { |
| 144 revisionMap = new RevisionMapper(getRepo()); | 144 revisionMap = new RevisionMapper(getRepo()); |
| 145 content.iterate(0, TIP, false, revisionMap); | 145 content.iterate(0, TIP, false, revisionMap); |
| 146 } | 146 } |
| 147 return revisionMap.at(revisionNumber); | 147 return revisionMap.at(changesetRevisionIndex); |
| 148 } | 148 } |
| 149 | 149 |
| 150 /** | 150 /** |
| 151 * Extracts file revision as it was known at the time of given changeset. | 151 * Extracts file revision as it was known at the time of given changeset. |
| 152 * | 152 * |
| 198 return rv; | 198 return rv; |
| 199 } | 199 } |
| 200 | 200 |
| 201 | 201 |
| 202 private int[] toManifestRevisionIndexes(int[] changelogRevisionIndexes) throws HgInvalidControlFileException { | 202 private int[] toManifestRevisionIndexes(int[] changelogRevisionIndexes) throws HgInvalidControlFileException { |
| 203 int[] localManifestRevs = new int[changelogRevisionIndexes.length]; | 203 int[] manifestRevs = new int[changelogRevisionIndexes.length]; |
| 204 boolean needsSort = false; | 204 boolean needsSort = false; |
| 205 for (int i = 0; i < changelogRevisionIndexes.length; i++) { | 205 for (int i = 0; i < changelogRevisionIndexes.length; i++) { |
| 206 final int manifestRevisionIndex = fromChangelog(changelogRevisionIndexes[i]); | 206 final int manifestRevisionIndex = fromChangelog(changelogRevisionIndexes[i]); |
| 207 localManifestRevs[i] = manifestRevisionIndex; | 207 manifestRevs[i] = manifestRevisionIndex; |
| 208 if (i > 0 && localManifestRevs[i-1] > manifestRevisionIndex) { | 208 if (i > 0 && manifestRevs[i-1] > manifestRevisionIndex) { |
| 209 needsSort = true; | 209 needsSort = true; |
| 210 } | 210 } |
| 211 } | 211 } |
| 212 if (needsSort) { | 212 if (needsSort) { |
| 213 Arrays.sort(localManifestRevs); | 213 Arrays.sort(manifestRevs); |
| 214 } | 214 } |
| 215 return localManifestRevs; | 215 return manifestRevs; |
| 216 } | 216 } |
| 217 | 217 |
| 218 public interface Inspector { | 218 public interface Inspector { |
| 219 boolean begin(int mainfestRevision, Nodeid nid, int changelogRevision); | 219 boolean begin(int mainfestRevision, Nodeid nid, int changelogRevision); |
| 220 /** | 220 /** |
