view tests/test-merge6 @ 5149:ad6b97132b81

merge: fix a copy detection bug (issue672) When merging rev1 and rev2, we want to search for copies that happened in rev1 but not in rev2 and vice-versa. We were starting the search at rev1/rev2 and then going back, stopping as soon as we reached the revno of the ancestor, but that can miss some cases (see the new test-issue672). Now we calculate the revisions that are ancestors of rev1 or rev2 (but not both) and make sure the search doesn't stop too early. Simplified test provided by mpm, based on a test case provided by Edward Lee.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sun, 12 Aug 2007 12:15:10 -0300
parents a74586023196
children
line wrap: on
line source

#!/bin/sh

cat <<EOF > merge
import sys, os
print "merging for", os.path.basename(sys.argv[1])
EOF
HGMERGE="python ../merge"; export HGMERGE

mkdir A1
cd A1
hg init
echo This is file foo1 > foo
echo This is file bar1 > bar
hg add foo bar
hg commit -m "commit text" -d "1000000 0"

cd ..
hg clone A1 B1

cd A1
rm bar
hg remove bar
hg commit -m "commit test" -d "1000000 0"

cd ../B1
echo This is file foo22 > foo
hg commit -m "commit test" -d "1000000 0"

cd ..
hg clone A1 A2
hg clone B1 B2

cd A1
hg pull ../B1
hg merge
hg commit -m "commit test" -d "1000000 0"
echo bar should remain deleted.
hg manifest --debug

cd ../B2
hg pull ../A2
hg merge
hg commit -m "commit test" -d "1000000 0"
echo bar should remain deleted.
hg manifest --debug