Mercurial > jhg
comparison src/org/tmatesoft/hg/repo/Revlog.java @ 445:d0e5dc3cae6e smartgit3
Support for phases functionality from Mercurial 2.1
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 05 Jun 2012 20:50:06 +0200 |
parents | 728708de3597 |
children | 2e402c12ebc6 |
comparison
equal
deleted
inserted
replaced
412:63c5a9d7ca3f | 445:d0e5dc3cae6e |
---|---|
255 } | 255 } |
256 } | 256 } |
257 } | 257 } |
258 | 258 |
259 @Experimental | 259 @Experimental |
260 public void walk(int start, int end, final Revlog.Inspector inspector) throws HgInvalidRevisionException, HgInvalidControlFileException { | 260 public final void walk(int start, int end, final Revlog.Inspector inspector) throws HgInvalidRevisionException, HgInvalidControlFileException { |
261 int lastRev = getLastRevision(); | 261 int lastRev = getLastRevision(); |
262 if (start == TIP) { | 262 if (start == TIP) { |
263 start = lastRev; | 263 start = lastRev; |
264 } | 264 } |
265 if (end == TIP) { | 265 if (end == TIP) { |
266 end = lastRev; | 266 end = lastRev; |
267 } | 267 } |
268 final RevisionInspector revisionInsp = Adaptable.Factory.getAdapter(inspector, RevisionInspector.class, null); | 268 final RevisionInspector revisionInsp = Adaptable.Factory.getAdapter(inspector, RevisionInspector.class, null); |
269 final ParentInspector parentInsp = Adaptable.Factory.getAdapter(inspector, ParentInspector.class, null); | 269 final ParentInspector parentInsp = Adaptable.Factory.getAdapter(inspector, ParentInspector.class, null); |
270 final Nodeid[] allRevisions = parentInsp == null ? null : new Nodeid[end - start + 1]; | 270 final Nodeid[] allRevisions = parentInsp == null ? null : new Nodeid[end - start + 1]; |
271 if (parentInsp != null && start != 0) { | |
272 // e.g. start == 6, end == 7 and parentOf(start) == 5. allRevisions.length == 2, allRevisions[parentOf(start)] => AIOOBE | |
273 throw new IllegalStateException("There's a defect in the code that doesn't allow walks other than from the very beginning"); | |
274 // TestAuxUtilities#testRevlogInspectors | |
275 } | |
271 | 276 |
272 content.iterate(start, end, false, new RevlogStream.Inspector() { | 277 content.iterate(start, end, false, new RevlogStream.Inspector() { |
273 | 278 |
274 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess data) { | 279 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess data) { |
275 Nodeid nid = Nodeid.fromBinary(nodeid, 0); | 280 Nodeid nid = Nodeid.fromBinary(nodeid, 0); |