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 /**