Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/HgManifest.java @ 550:c1478cc31f45
Regression: expect file to be missing in a manifest
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 19 Feb 2013 21:35:09 +0100 |
parents | 66fc86e8c0dd |
children | e4ee4bf4c7d0 |
comparison
equal
deleted
inserted
replaced
549:83afa680555d | 550:c1478cc31f45 |
---|---|
264 return null; | 264 return null; |
265 } | 265 } |
266 IntMap<Nodeid> resMap = new IntMap<Nodeid>(3); | 266 IntMap<Nodeid> resMap = new IntMap<Nodeid>(3); |
267 FileLookupInspector parser = new FileLookupInspector(encodingHelper, file, resMap, null); | 267 FileLookupInspector parser = new FileLookupInspector(encodingHelper, file, resMap, null); |
268 parser.walk(manifestRevIndex, content); | 268 parser.walk(manifestRevIndex, content); |
269 assert resMap.size() == 1; | 269 assert resMap.size() <= 1; // size() == 0 if file wasn't found |
270 // can't use changelogRevisionIndex as key - it might have been TIP | 270 // can't use changelogRevisionIndex as key - it might have been TIP |
271 return resMap.get(resMap.firstKey()); | 271 return resMap.size() == 0 ? null : resMap.get(resMap.firstKey()); |
272 } | 272 } |
273 | 273 |
274 /** | 274 /** |
275 * Visit file revisions as they were recorded at the time of given changesets. Same file revision may be reported as many times as | 275 * Visit file revisions as they were recorded at the time of given changesets. Same file revision may be reported as many times as |
276 * there are changesets that refer to that revision. Both {@link Inspector#begin(int, Nodeid, int)} and {@link Inspector#end(int)} | 276 * there are changesets that refer to that revision. Both {@link Inspector#begin(int, Nodeid, int)} and {@link Inspector#end(int)} |
308 public Flags getFileFlags(int changesetRevIndex, Path file) throws HgInvalidRevisionException, HgInvalidControlFileException { | 308 public Flags getFileFlags(int changesetRevIndex, Path file) throws HgInvalidRevisionException, HgInvalidControlFileException { |
309 int manifestRevIdx = fromChangelog(changesetRevIndex); | 309 int manifestRevIdx = fromChangelog(changesetRevIndex); |
310 IntMap<Flags> resMap = new IntMap<Flags>(2); | 310 IntMap<Flags> resMap = new IntMap<Flags>(2); |
311 FileLookupInspector parser = new FileLookupInspector(encodingHelper, file, null, resMap); | 311 FileLookupInspector parser = new FileLookupInspector(encodingHelper, file, null, resMap); |
312 parser.walk(manifestRevIdx, content); | 312 parser.walk(manifestRevIdx, content); |
313 assert resMap.size() == 1; | 313 assert resMap.size() <= 1; // size() == 0 if not found |
314 // can't use changesetRevIndex as key - it might have been TIP | 314 // can't use changesetRevIndex as key - it might have been TIP |
315 return resMap.get(resMap.firstKey()); | 315 return resMap.size() == 0 ? null : resMap.get(resMap.firstKey()); |
316 } | 316 } |
317 | 317 |
318 | 318 |
319 /** | 319 /** |
320 * @param changelogRevisionIndexes non-null | 320 * @param changelogRevisionIndexes non-null |