diff tests/test-merge-commit @ 4058:e7282dede8cd

filecommit: don't forget the local parent on a merge with a local rename
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Tue, 30 Jan 2007 19:09:08 -0200
parents
children 46280c004f22
line wrap: on
line diff
new file mode 100755
--- /dev/null
+++ b/tests/test-merge-commit
@@ -0,0 +1,77 @@
+#!/bin/sh
+# check that renames are correctly saved by a commit after a merge
+
+HGMERGE=merge
+export HGMERGE
+
+# test with the merge on 3 having the rename on the local parent
+hg init a
+cd a
+
+echo line1 > foo
+hg add foo
+hg ci -m '0: add foo' -d '0 0'
+
+echo line2 >> foo
+hg ci -m '1: change foo' -d '0 0'
+
+hg up -C 0
+hg mv foo bar
+rm bar
+echo line0 > bar
+echo line1 >> bar
+hg ci -m '2: mv foo bar; change bar' -d '0 0'
+
+hg merge 1
+echo '% contents of bar should be line0 line1 line2'
+cat bar
+hg ci -m '3: merge with local rename' -d '0 0'
+hg debugindex .hg/store/data/bar.i
+hg debugrename bar
+hg debugindex .hg/store/data/foo.i
+
+# revert the content change from rev 2
+hg up -C 2
+rm bar
+echo line1 > bar
+hg ci -m '4: revert content change from rev 2' -d '0 0'
+
+hg log --template '#rev#:#node|short# #parents#\n'
+echo '% this should use bar@rev2 as the ancestor'
+hg --debug merge 3
+echo '% contents of bar should be line1 line2'
+cat bar
+hg ci -m '5: merge' -d '0 0'
+hg debugindex .hg/store/data/bar.i
+
+
+# same thing, but with the merge on 3 having the rename on the remote parent
+echo
+echo
+cd ..
+hg clone -U -r 1 -r 2 a b
+cd b
+
+hg up -C 1
+hg merge 2
+echo '% contents of bar should be line0 line1 line2'
+cat bar
+hg ci -m '3: merge with remote rename' -d '0 0'
+hg debugindex .hg/store/data/bar.i
+hg debugrename bar
+hg debugindex .hg/store/data/foo.i
+
+# revert the content change from rev 2
+hg up -C 2
+rm bar
+echo line1 > bar
+hg ci -m '4: revert content change from rev 2' -d '0 0'
+
+hg log --template '#rev#:#node|short# #parents#\n'
+echo '% this should use bar@rev2 as the ancestor'
+hg --debug merge 3
+echo '% contents of bar should be line1 line2'
+cat bar
+hg ci -m '5: merge' -d '0 0'
+hg debugindex .hg/store/data/bar.i
+