|
|
#!/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
|
|
|
|
|
|
|