Mercurial > public > mercurial-scm > hg-stable
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
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-merge-commit Tue Jan 30 19:09:08 2007 -0200 @@ -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 +