view tests/test-merge-commit @ 9462:1f54b1b7122f

test-keyword: run kwdemo before setting up [keyword] files kwdemo would pass the test without uisetup otherwise. Also no need to specify --default option.
author Christian Ebert <blacktrash@gmx.net>
date Thu, 10 Sep 2009 23:15:37 +0200
parents 5b7da468531b
children
line wrap: on
line source

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

echo line2 >> foo
hg ci -m '1: change foo'

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'

hg merge 1
echo '% contents of bar should be line0 line1 line2'
cat bar
hg ci -m '3: merge with local rename'
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'

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'
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'
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'

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'
hg debugindex .hg/store/data/bar.i