tests/test-merge-commit
author David Soria Parra <dsp@php.net>
Tue, 18 Mar 2008 22:12:34 +0100
changeset 6302 8e3dc3de7e73
parent 4365 46280c004f22
child 8167 6c82beaaa11a
permissions -rwxr-xr-x
Use the pager given by the environment to display long output Unix systems usually have a PAGER environment variable set. If it is set, mercurial will use the pager application to display output. Two configuration variables are available to influence the behaviour of the pager. ui.pager sets the pager application. The pager is only used if ui.usepager is true. By default ui.usepager is disabled.

#!/bin/sh
# check that renames are correctly saved by a commit after a merge

# 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