Mercurial > hg4j
comparison cmdline/org/tmatesoft/hg/console/Main.java @ 317:09628675bcee
Rework file history build approach to match rest of the API
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> | 
|---|---|
| date | Thu, 29 Sep 2011 03:20:28 +0200 | 
| parents | 3f40262153a4 | 
| children | a674b8590362 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 316:ee6b467c1a5f | 317:09628675bcee | 
|---|---|
| 84 System.out.println("REPO:" + hgRepo.getLocation()); | 84 System.out.println("REPO:" + hgRepo.getLocation()); | 
| 85 } | 85 } | 
| 86 | 86 | 
| 87 public static void main(String[] args) throws Exception { | 87 public static void main(String[] args) throws Exception { | 
| 88 Main m = new Main(args); | 88 Main m = new Main(args); | 
| 89 // m.buildFileLog(); | 89 m.buildFileLog(); | 
| 90 // m.testConsoleLog(); | 90 // m.testConsoleLog(); | 
| 91 // m.testTreeTraversal(); | 91 // m.testTreeTraversal(); | 
| 92 // m.testRevisionMap(); | 92 // m.testRevisionMap(); | 
| 93 // m.testSubrepos(); | 93 // m.testSubrepos(); | 
| 94 // m.testReadWorkingCopy(); | 94 // m.testReadWorkingCopy(); | 
| 95 // m.testParents(); | 95 // m.testParents(); | 
| 96 // m.testEffectiveFileLog(); | 96 // m.testEffectiveFileLog(); | 
| 97 // m.testCatAtCsetRevision(); | 97 // m.testCatAtCsetRevision(); | 
| 98 // m.testMergeState(); | 98 // m.testMergeState(); | 
| 99 // m.testFileStatus(); | 99 // m.testFileStatus(); | 
| 100 m.dumpBranches(); | 100 // m.dumpBranches(); | 
| 101 // m.inflaterLengthException(); | 101 // m.inflaterLengthException(); | 
| 102 // m.dumpIgnored(); | 102 // m.dumpIgnored(); | 
| 103 // m.dumpDirstate(); | 103 // m.dumpDirstate(); | 
| 104 // m.testStatusInternals(); | 104 // m.testStatusInternals(); | 
| 105 // m.catCompleteHistory(); | 105 // m.catCompleteHistory(); | 
| 108 // m.bunchOfTests(); | 108 // m.bunchOfTests(); | 
| 109 } | 109 } | 
| 110 | 110 | 
| 111 private void buildFileLog() { | 111 private void buildFileLog() { | 
| 112 final HgDataFile fn = hgRepo.getFileNode("file1"); | 112 final HgDataFile fn = hgRepo.getFileNode("file1"); | 
| 113 HgDataFile.HistoryWalker hw = fn.history(); | 113 HgChangelog.TreeInspector insp = new HgChangelog.TreeInspector() { | 
| 114 while (hw.hasNext()) { | 114 | 
| 115 hw.next(); | 115 public void next(Nodeid changesetRevision, Pair<Nodeid, Nodeid> parentChangesets, Collection<Nodeid> childChangesets) { | 
| 116 StringBuilder sb = new StringBuilder(); | 116 StringBuilder sb = new StringBuilder(); | 
| 117 Collection<Nodeid> children = hw.childChangesets(); | 117 for (Nodeid cc : childChangesets) { | 
| 118 for (Nodeid cc : children) { | 118 sb.append(cc.shortNotation()); | 
| 119 sb.append(cc.shortNotation()); | 119 sb.append(", "); | 
| 120 sb.append(", "); | 120 } | 
| 121 } | 121 final boolean isJoin = !parentChangesets.first().isNull() && !parentChangesets.second().isNull(); | 
| 122 if (hw.isJoin()) { | 122 final boolean isFork = childChangesets.size() > 1; | 
| 123 final Pair<Nodeid, Nodeid> parents = hw.parentChangesets(); | 123 if (isJoin) { | 
| 124 System.out.printf("join[(%s, %s) => %s]\n", parents.first().shortNotation(), parents.second().shortNotation(), hw.changesetRevision().shortNotation()); | 124 System.out.printf("join[(%s, %s) => %s]\n", parentChangesets.first().shortNotation(), parentChangesets.second().shortNotation(), changesetRevision.shortNotation()); | 
| 125 } | 125 } | 
| 126 if (hw.isFork()) { | 126 if (isFork) { | 
| 127 System.out.printf("fork[%s => %s]\n", hw.changesetRevision().shortNotation(), sb); | 127 System.out.printf("fork[%s => %s]\n", changesetRevision.shortNotation(), sb); | 
| 128 } | 128 } | 
| 129 if (!hw.isFork() && !hw.isJoin() && !children.isEmpty()) { | 129 if (!isFork && !isJoin && !childChangesets.isEmpty()) { | 
| 130 System.out.printf("%s => %s\n", hw.changesetRevision().shortNotation(), sb); | 130 System.out.printf("%s => %s\n", changesetRevision.shortNotation(), sb); | 
| 131 } | 131 } | 
| 132 } | 132 } | 
| 133 }; | |
| 134 fn.history(insp); | |
| 133 } | 135 } | 
| 134 | 136 | 
| 135 private void buildFileLogOld() { | 137 private void buildFileLogOld() { | 
| 136 final HgDataFile fn = hgRepo.getFileNode("file1"); | 138 final HgDataFile fn = hgRepo.getFileNode("file1"); | 
| 137 final int[] fileChangesetRevisions = new int[fn.getRevisionCount()]; | 139 final int[] fileChangesetRevisions = new int[fn.getRevisionCount()]; | 
