[PATCH 4 of 4] add test to check the behavior of 'hg merge' in the presence of closed heads

John Mulligan phlogistonjohn at asynchrono.us
Sun May 31 13:11:27 CDT 2009


# HG changeset patch
# User John Mulligan <phlogistonjohn at asynchrono.us>
# Date 1243790396 14400
# Node ID 9ffc8316438c595550ffee5b7225a405f38bc7dd
# Parent  b313a18676ad4d513d79c1bb61ca02cb008ccc9a
add test to check the behavior of 'hg merge' in the presence of closed heads

verify that "hg merge" should not block the user from merging (w/o args)
if there are only two _open_ heads on the branch

diff --git a/tests/test-merge-closedheads b/tests/test-merge-closedheads
new file mode 100755
--- /dev/null
+++ b/tests/test-merge-closedheads
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+hgcommit() {
+    hg commit -u user -d '0 0' "$@"
+}
+
+hg init clhead
+cd clhead
+
+
+touch foo && hg add && hgcommit -m 'foo'
+touch bar && hg add && hgcommit -m 'bar'
+touch baz && hg add && hgcommit -m 'baz'
+
+echo "flub" > foo
+hgcommit -m "flub"
+echo "nub" > foo
+hgcommit -m "nub"
+
+hg up -C 2
+
+echo "c1" > c1
+hg add c1
+hgcommit -m "c1"
+echo "c2" > c1
+hgcommit -m "c2"
+
+hg up -C 2
+
+echo "d1" > d1
+hg add d1
+hgcommit -m "d1"
+echo "d2" > d1
+hgcommit -m "d2"
+hg tag -l good
+
+echo '% fail with three heads'
+hg up -C good
+hg merge
+
+echo '% close one of the heads'
+hg up -C 6
+hgcommit -m 'close this head' --close-branch
+
+echo '% succeed with two open heads'
+hg up -C good
+hg up -C good
+hg merge
+hgcommit -m 'merged heads'
+
+
diff --git a/tests/test-merge-closedheads.out b/tests/test-merge-closedheads.out
new file mode 100644
--- /dev/null
+++ b/tests/test-merge-closedheads.out
@@ -0,0 +1,17 @@
+adding foo
+adding bar
+adding baz
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+created new head
+0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+created new head
+% fail with three heads
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+abort: branch 'default' has 3 heads - please merge with an explicit rev
+% close one of the heads
+1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+% succeed with two open heads
+1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+(branch merge, don't forget to commit)


More information about the Mercurial-devel mailing list