test-merge-commit
77 lines
| 1.7 KiB
| text/plain
|
TextLexer
/ tests / test-merge-commit
|
r4058 | #!/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 | ||||