Mercurial > hg4j
comparison cmdline/org/tmatesoft/hg/console/Main.java @ 433:be697c3e951e
Revlog.RevisionMap helper class got promoted as TLC, renamed to HgRevisionMap
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 30 Mar 2012 16:43:09 +0200 |
| parents | 12f668401613 |
| children | 6865eb742883 |
comparison
equal
deleted
inserted
replaced
| 432:1fc0da631200 | 433:be697c3e951e |
|---|---|
| 63 import org.tmatesoft.hg.repo.HgStatusCollector; | 63 import org.tmatesoft.hg.repo.HgStatusCollector; |
| 64 import org.tmatesoft.hg.repo.HgStatusInspector; | 64 import org.tmatesoft.hg.repo.HgStatusInspector; |
| 65 import org.tmatesoft.hg.repo.HgSubrepoLocation; | 65 import org.tmatesoft.hg.repo.HgSubrepoLocation; |
| 66 import org.tmatesoft.hg.repo.HgSubrepoLocation.Kind; | 66 import org.tmatesoft.hg.repo.HgSubrepoLocation.Kind; |
| 67 import org.tmatesoft.hg.repo.HgWorkingCopyStatusCollector; | 67 import org.tmatesoft.hg.repo.HgWorkingCopyStatusCollector; |
| 68 import org.tmatesoft.hg.repo.HgRevisionMap; | |
| 68 import org.tmatesoft.hg.util.FileWalker; | 69 import org.tmatesoft.hg.util.FileWalker; |
| 69 import org.tmatesoft.hg.util.LogFacility; | 70 import org.tmatesoft.hg.util.LogFacility; |
| 70 import org.tmatesoft.hg.util.Pair; | 71 import org.tmatesoft.hg.util.Pair; |
| 71 import org.tmatesoft.hg.util.Path; | 72 import org.tmatesoft.hg.util.Path; |
| 72 import org.tmatesoft.hg.util.PathRewrite; | 73 import org.tmatesoft.hg.util.PathRewrite; |
| 286 Hence, with 20-30 ms per regular getLocalRevision, it pays off to use RevisionMap with at least 15-20 | 287 Hence, with 20-30 ms per regular getLocalRevision, it pays off to use RevisionMap with at least 15-20 |
| 287 queries | 288 queries |
| 288 */ | 289 */ |
| 289 private void testRevisionMap() throws Exception { | 290 private void testRevisionMap() throws Exception { |
| 290 HgChangelog changelog = hgRepo.getChangelog(); | 291 HgChangelog changelog = hgRepo.getChangelog(); |
| 291 HgChangelog.RevisionMap rmap = changelog.new RevisionMap().init(); // warm-up, ensure complete file read | 292 HgRevisionMap<HgChangelog> rmap = new HgRevisionMap<HgChangelog>(changelog).init(); // warm-up, ensure complete file read |
| 292 int tip = changelog.getLastRevision(); | 293 int tip = changelog.getLastRevision(); |
| 293 // take 5 arbitrary revisions at 0, 1/4, 2/4, 3/4 and 4/4 | 294 // take 5 arbitrary revisions at 0, 1/4, 2/4, 3/4 and 4/4 |
| 294 final Nodeid[] revs = new Nodeid[5]; | 295 final Nodeid[] revs = new Nodeid[5]; |
| 295 revs[4] = changelog.getRevision(0); | 296 revs[4] = changelog.getRevision(0); |
| 296 revs[3] = changelog.getRevision(tip / 4); | 297 revs[3] = changelog.getRevision(tip / 4); |
| 304 } | 305 } |
| 305 System.out.println(System.currentTimeMillis() - start); | 306 System.out.println(System.currentTimeMillis() - start); |
| 306 System.out.println(); | 307 System.out.println(); |
| 307 // | 308 // |
| 308 start = System.currentTimeMillis(); | 309 start = System.currentTimeMillis(); |
| 309 rmap = changelog.new RevisionMap().init(); | 310 rmap = new HgRevisionMap<HgChangelog>(changelog).init(); |
| 310 long s2 = System.currentTimeMillis(); | 311 long s2 = System.currentTimeMillis(); |
| 311 for (int i = 0; i < revs.length; i++) { | 312 for (int i = 0; i < revs.length; i++) { |
| 312 final int localRev = rmap.revisionIndex(revs[i]); | 313 final int localRev = rmap.revisionIndex(revs[i]); |
| 313 System.out.printf("%d:%s\n", localRev, revs[i]); | 314 System.out.printf("%d:%s\n", localRev, revs[i]); |
| 314 } | 315 } |
