Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgLogCommand.java @ 517:9922d1f7cb2a
Update test to use new command configuration argument (used to have followAncestry == true by default)
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 18 Dec 2012 19:08:00 +0100 |
parents | 0ae5768081aa |
children | 0d5e1ea7955e |
comparison
equal
deleted
inserted
replaced
516:0ae5768081aa | 517:9922d1f7cb2a |
---|---|
351 final ProgressSupport progressHelper = getProgressSupport(handler); | 351 final ProgressSupport progressHelper = getProgressSupport(handler); |
352 final CancelSupport cancelHelper = getCancelSupport(handler, true); | 352 final CancelSupport cancelHelper = getCancelSupport(handler, true); |
353 final HgFileRenameHandlerMixin renameHandler = Adaptable.Factory.getAdapter(handler, HgFileRenameHandlerMixin.class, null); | 353 final HgFileRenameHandlerMixin renameHandler = Adaptable.Factory.getAdapter(handler, HgFileRenameHandlerMixin.class, null); |
354 | 354 |
355 | 355 |
356 // XXX rename. dispatcher is not a proper name (most of the job done - managing history chunk interconnection) | |
356 final HandlerDispatcher dispatcher = new HandlerDispatcher() { | 357 final HandlerDispatcher dispatcher = new HandlerDispatcher() { |
357 | 358 |
358 @Override | 359 @Override |
359 protected void once(HistoryNode n) throws HgCallbackTargetException, CancelledException { | 360 protected void once(HistoryNode n) throws HgCallbackTargetException, CancelledException { |
360 handler.treeElement(ei.init(n, currentFileNode)); | 361 handler.treeElement(ei.init(n, currentFileNode)); |
363 }; | 364 }; |
364 | 365 |
365 // renamed files in the queue are placed with respect to #iterateDirection | 366 // renamed files in the queue are placed with respect to #iterateDirection |
366 // i.e. if we iterate from new to old, recent filenames come first | 367 // i.e. if we iterate from new to old, recent filenames come first |
367 List<Pair<HgDataFile, Nodeid>> fileRenamesQueue = buildFileRenamesQueue(); | 368 List<Pair<HgDataFile, Nodeid>> fileRenamesQueue = buildFileRenamesQueue(); |
369 // XXX perhaps, makes sense to look at selected file's revision when followAncestry is true | |
370 // to ensure file we attempt to trace is in the WC's parent. Native hg aborts if not. | |
368 progressHelper.start(4 * fileRenamesQueue.size()); | 371 progressHelper.start(4 * fileRenamesQueue.size()); |
369 for (int namesIndex = 0, renamesQueueSize = fileRenamesQueue.size(); namesIndex < renamesQueueSize; namesIndex++) { | 372 for (int namesIndex = 0, renamesQueueSize = fileRenamesQueue.size(); namesIndex < renamesQueueSize; namesIndex++) { |
370 | 373 |
371 final Pair<HgDataFile, Nodeid> renameInfo = fileRenamesQueue.get(namesIndex); | 374 final Pair<HgDataFile, Nodeid> renameInfo = fileRenamesQueue.get(namesIndex); |
372 dispatcher.prepare(progressHelper, renameInfo); | 375 dispatcher.prepare(progressHelper, renameInfo); |
823 children.add(child); | 826 children.add(child); |
824 } | 827 } |
825 | 828 |
826 /** | 829 /** |
827 * method to merge two history chunks for renamed file so that | 830 * method to merge two history chunks for renamed file so that |
828 * this node's history continues with that of child | 831 * this node's history continues (or forks, if we don't followAncestry) |
832 * with that of child | |
829 * @param child | 833 * @param child |
830 */ | 834 */ |
831 public void bindChild(HistoryNode child) { | 835 public void bindChild(HistoryNode child) { |
832 assert child.parent1 == null && child.parent2 == null; | 836 assert child.parent1 == null && child.parent2 == null; |
833 // for the last element in history empty children are by construction: | |
834 // we don't iterate further than last element of interest in TreeBuildInspector#go | |
835 assert children == null || children.isEmpty(); | |
836 child.parent1 = this; | 837 child.parent1 = this; |
837 addChild(child); | 838 addChild(child); |
838 } | 839 } |
839 | 840 |
840 public String toString() { | 841 public String toString() { |