--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-merge-closedheads.t Wed Aug 18 04:21:10 2010 +0530
@@ -0,0 +1,84 @@
+ $ hgcommit() {
+ > hg commit -u user -d '0 0' "$@"
+ > }
+
+ $ hg init clhead
+ $ cd clhead
+
+ $ touch foo && hg add && hgcommit -m 'foo'
+ adding foo
+ $ touch bar && hg add && hgcommit -m 'bar'
+ adding bar
+ $ touch baz && hg add && hgcommit -m 'baz'
+ adding baz
+
+ $ echo "flub" > foo
+ $ hgcommit -m "flub"
+ $ echo "nub" > foo
+ $ hgcommit -m "nub"
+
+ $ hg up -C 2
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+ $ echo "c1" > c1
+ $ hg add c1
+ $ hgcommit -m "c1"
+ created new head
+ $ echo "c2" > c1
+ $ hgcommit -m "c2"
+
+ $ hg up -C 2
+ 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+
+ $ echo "d1" > d1
+ $ hg add d1
+ $ hgcommit -m "d1"
+ created new head
+ $ echo "d2" > d1
+ $ hgcommit -m "d2"
+ $ hg tag -l good
+
+fail with three heads
+ $ hg up -C good
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge
+ abort: branch 'default' has 3 heads - please merge with an explicit rev
+ (run 'hg heads .' to see heads)
+
+close one of the heads
+ $ hg up -C 6
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hgcommit -m 'close this head' --close-branch
+
+succeed with two open heads
+ $ hg up -C good
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ hg up -C good
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ hg merge
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+ $ hgcommit -m 'merged heads'
+
+hg update -C 8
+ $ hg update -C 8
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+hg branch some-branch
+ $ hg branch some-branch
+ marked working directory as branch some-branch
+hg commit
+ $ hgcommit -m 'started some-branch'
+hg commit --close-branch
+ $ hgcommit --close-branch -m 'closed some-branch'
+
+hg update default
+ $ hg update default
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+hg merge some-branch
+ $ hg merge some-branch
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ (branch merge, don't forget to commit)
+hg commit (no reopening of some-branch)
+ $ hgcommit -m 'merge with closed branch'
+