Mercurial > hg4j
diff test/org/tmatesoft/hg/test/TestHistory.java @ 509:a30e74dca193
Establish parent-child between first and last elements of history chunks for two renamed files
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 13 Dec 2012 13:18:35 +0100 |
parents | ca5202afea90 |
children | 90093ee56c0d |
line wrap: on
line diff
--- a/test/org/tmatesoft/hg/test/TestHistory.java Wed Dec 12 20:52:10 2012 +0100 +++ b/test/org/tmatesoft/hg/test/TestHistory.java Thu Dec 13 13:18:35 2012 +0100 @@ -144,6 +144,7 @@ eh.run("hg", "log", "--debug", "--follow", fname); TreeCollectHandler h = new TreeCollectHandler(true); + h.checkPrevInParents = true; new HgLogCommand(repo).file(fname, true).execute(h); report("execute with HgChangesetTreeHandler(follow == true)", h.getResult(), false); @@ -290,6 +291,8 @@ private final class TreeCollectHandler implements HgChangesetTreeHandler { private final LinkedList<HgChangeset> cmdResult = new LinkedList<HgChangeset>(); private final boolean reverseResult; + boolean checkPrevInChildren = false; + boolean checkPrevInParents = false; public TreeCollectHandler(boolean _reverseResult) { this.reverseResult = _reverseResult; @@ -298,12 +301,14 @@ public List<HgChangeset> getResult() { return cmdResult; } + public void treeElement(TreeElement entry) throws HgCallbackTargetException { // check consistency Nodeid cset = entry.changeset().getNodeid(); errorCollector.assertEquals(entry.changesetRevision(), cset); - Pair<HgChangeset, HgChangeset> parents_a = entry.parents(); + Pair<HgChangeset, HgChangeset> p = entry.parents(); + Pair<HgChangeset, HgChangeset> parents_a = p; Pair<Nodeid, Nodeid> parents_b = entry.parentRevisions(); if (parents_b.first().isNull()) { errorCollector.assertTrue(parents_a.first() == null); @@ -316,6 +321,17 @@ errorCollector.assertEquals(parents_b.second(), parents_a.second().getNodeid()); } // + if (checkPrevInChildren && !cmdResult.isEmpty()) { + HgChangeset prevChangeset = reverseResult ? cmdResult.getFirst() : cmdResult.getLast(); + String msg = String.format("No parent-child bind betwee revisions %d and %d", prevChangeset.getRevisionIndex(), entry.changeset().getRevisionIndex()); + errorCollector.assertTrue(msg, entry.children().contains(prevChangeset)); + } + if (checkPrevInParents && !cmdResult.isEmpty()) { + HgChangeset prevChangeset = reverseResult ? cmdResult.getFirst() : cmdResult.getLast(); + String msg = String.format("No parent-child bind betwee revisions %d and %d", prevChangeset.getRevisionIndex(), entry.changeset().getRevisionIndex()); + errorCollector.assertTrue(msg, p.first() == prevChangeset || p.second() == prevChangeset); + } + // if (reverseResult) { cmdResult.addFirst(entry.changeset()); } else {