tests/test-merge1
author Thomas Arendsen Hein <thomas@intevation.de>
Wed, 10 Aug 2005 06:47:46 +0100
changeset 862 d70c1c31fd45
parent 814 0902ffece4b4
child 1236 67a28636ea64
permissions -rwxr-xr-x
Fix 3-way-merge of original parent, workdir and new parent. The dirstate has to match what is in the repository (what would be checked out with 'hg update -C'), because the resulting file may be identical to the new parent, or it may be completely different. Previously the dirstate wasn't updated, so if you changed the file to look like the original parent, it might be considered unmodified relative to the new parent.

#!/bin/sh

cat <<'EOF' > merge
#!/bin/sh
echo merging for `basename $1`
EOF
chmod +x merge

mkdir t
cd t
hg init
echo This is file a1 > a
hg add a
hg commit -m "commit #0" -d "0 0"
echo This is file b1 > b
hg add b
hg commit -m "commit #1" -d "0 0"

hg update 0
echo This is file c1 > c
hg add c
hg commit -m "commit #2" -d "0 0"
echo This is file b1 > b
env HGMERGE=../merge hg update -m 1
# no merges expected
cd ..; /bin/rm -rf t

mkdir t
cd t
hg init
echo This is file a1 > a
hg add a
hg commit -m "commit #0" -d "0 0"
echo This is file b1 > b
hg add b
hg commit -m "commit #1" -d "0 0"

hg update 0
echo This is file c1 > c
hg add c
hg commit -m "commit #2" -d "0 0"
echo This is file b2 > b
env HGMERGE=../merge hg update -m 1
# merge of b expected
cd ..; /bin/rm -rf t

mkdir t
cd t
hg init
echo This is file a1 > a
hg add a
hg commit -m "commit #0" -d "0 0"
echo This is file b1 > b
hg add b
hg commit -m "commit #1" -d "0 0"
echo This is file b22 > b
hg commit -m "commit #2" -d "0 0"
hg update 1
echo This is file c1 > c
hg add c
hg commit -m "commit #3" -d "0 0"
cat b
echo This is file b22 > b
env HGMERGE=../merge hg update -m 2
# merge expected!
cd ..; /bin/rm -rf t

mkdir t
cd t
hg init
echo This is file a1 > a
hg add a
hg commit -m "commit #0" -d "0 0"
echo This is file b1 > b
hg add b
hg commit -m "commit #1" -d "0 0"
echo This is file b22 > b
hg commit -m "commit #2" -d "0 0"
hg update 1
echo This is file c1 > c
hg add c
hg commit -m "commit #3" -d "0 0"
echo This is file b33 > b
env HGMERGE=../merge hg update -m 2
# merge of b expected
cd ..; /bin/rm -rf t