Mercurial > hg4j
comparison cmdline/org/tmatesoft/hg/console/Main.java @ 236:883300108179
Speed up branches calculation when cached branch information is available
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 09 Jun 2011 06:13:43 +0200 |
parents | fd845a53f53d |
children | 6e1373b54e9b |
comparison
equal
deleted
inserted
replaced
235:fd845a53f53d | 236:883300108179 |
---|---|
43 import org.tmatesoft.hg.repo.HgStatusInspector; | 43 import org.tmatesoft.hg.repo.HgStatusInspector; |
44 import org.tmatesoft.hg.repo.HgWorkingCopyStatusCollector; | 44 import org.tmatesoft.hg.repo.HgWorkingCopyStatusCollector; |
45 import org.tmatesoft.hg.repo.HgChangelog.RawChangeset; | 45 import org.tmatesoft.hg.repo.HgChangelog.RawChangeset; |
46 import org.tmatesoft.hg.util.Pair; | 46 import org.tmatesoft.hg.util.Pair; |
47 import org.tmatesoft.hg.util.Path; | 47 import org.tmatesoft.hg.util.Path; |
48 import org.tmatesoft.hg.util.ProgressSupport; | |
48 | 49 |
49 /** | 50 /** |
50 * Various debug dumps. | 51 * Various debug dumps. |
51 * | 52 * |
52 * @author Artem Tikhomirov | 53 * @author Artem Tikhomirov |
67 System.out.println("REPO:" + hgRepo.getLocation()); | 68 System.out.println("REPO:" + hgRepo.getLocation()); |
68 } | 69 } |
69 | 70 |
70 public static void main(String[] args) throws Exception { | 71 public static void main(String[] args) throws Exception { |
71 Main m = new Main(args); | 72 Main m = new Main(args); |
72 m.testParents(); | 73 // m.testParents(); |
73 // m.testEffectiveFileLog(); | 74 // m.testEffectiveFileLog(); |
74 // m.testCatAtCsetRevision(); | 75 // m.testCatAtCsetRevision(); |
75 // m.testMergeState(); | 76 // m.testMergeState(); |
76 // m.testFileStatus(); | 77 // m.testFileStatus(); |
77 // m.dumpBranches(); | 78 m.dumpBranches(); |
78 // m.inflaterLengthException(); | 79 // m.inflaterLengthException(); |
79 // m.dumpIgnored(); | 80 // m.dumpIgnored(); |
80 // m.dumpDirstate(); | 81 // m.dumpDirstate(); |
81 // m.testStatusInternals(); | 82 // m.testStatusInternals(); |
82 // m.catCompleteHistory(); | 83 // m.catCompleteHistory(); |
151 // HgWorkingCopyStatusCollector wcsc = HgWorkingCopyStatusCollector.create(hgRepo, path); | 152 // HgWorkingCopyStatusCollector wcsc = HgWorkingCopyStatusCollector.create(hgRepo, path); |
152 HgWorkingCopyStatusCollector wcsc = HgWorkingCopyStatusCollector.create(hgRepo, new PathGlobMatcher("mi**")); | 153 HgWorkingCopyStatusCollector wcsc = HgWorkingCopyStatusCollector.create(hgRepo, new PathGlobMatcher("mi**")); |
153 wcsc.walk(TIP, new StatusDump()); | 154 wcsc.walk(TIP, new StatusDump()); |
154 } | 155 } |
155 | 156 |
157 /* | |
158 * Straightforward approach to collect branches, no use of branchheads.cache | |
159 * First, single run - 18 563 | |
160 * 10 runs (after 1 warm up) of HgBranches.collect took 167391 ms, ~17 seconds per run. | |
161 */ | |
156 private void dumpBranches() { | 162 private void dumpBranches() { |
163 final long start0 = System.currentTimeMillis(); | |
157 HgBranches b = hgRepo.getBranches(); | 164 HgBranches b = hgRepo.getBranches(); |
165 System.out.println("1:" + (System.currentTimeMillis() - start0)); | |
158 for (HgBranches.BranchInfo bi : b.getAllBranches()) { | 166 for (HgBranches.BranchInfo bi : b.getAllBranches()) { |
159 System.out.print(bi.getName()); | 167 System.out.print(bi.getName()); |
160 if (bi.isClosed()) { | 168 // if (bi.isClosed()) { |
161 System.out.print("!"); | 169 // System.out.print("!"); |
162 } | 170 // } |
163 System.out.print(" "); | 171 // System.out.print(" "); |
164 System.out.print(bi.getStart()); | 172 // System.out.print(bi.getStart()); |
165 System.out.print(" "); | 173 System.out.print(" "); |
166 System.out.println(bi.getHeads()); | 174 System.out.println(bi.getHeads()); |
167 } | 175 } |
176 // final long start = System.currentTimeMillis(); | |
177 // for (int i = 0; i < 10; i++) { | |
178 // b.collect(ProgressSupport.Factory.get(null)); | |
179 // } | |
180 // System.out.println("10:" + (System.currentTimeMillis() - start)); | |
168 } | 181 } |
169 | 182 |
170 private void inflaterLengthException() throws Exception { | 183 private void inflaterLengthException() throws Exception { |
171 HgDataFile f1 = hgRepo.getFileNode("src/com/tmate/hgkit/console/Bundle.java"); | 184 HgDataFile f1 = hgRepo.getFileNode("src/com/tmate/hgkit/console/Bundle.java"); |
172 HgDataFile f2 = hgRepo.getFileNode("test-repos.jar"); | 185 HgDataFile f2 = hgRepo.getFileNode("test-repos.jar"); |