tests/test-merge-revert2
author Thomas Arendsen Hein <thomas@intevation.de>
Wed, 10 Aug 2005 06:47:46 +0100
changeset 862 d70c1c31fd45
parent 839 9c918287d10b
child 864 6225bd773c51
child 866 6d6095823b82
child 894 62ec665759f2
child 895 77b52b864249
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

mkdir t
cd t
hg init
echo "added file1" > file1
echo "added file2" > file2
hg add file1 file2
hg commit -m "added file1 and file2" -d "0 0" -u user
echo "changed file1" >> file1
hg commit -m "changed file1" -d "0 0" -u user
hg -q log
hg id
hg update -C 0
hg id
echo "changed file1" >> file1
hg id
hg revert
hg diff
hg status
hg id
hg update
hg diff
hg status
hg id
hg update -C 0
echo "changed file1 different" >> file1
HGMERGE=merge hg update
hg diff | sed -e "s/\(\(---\|+++\) [a-zA-Z0-9_/.-]*\).*/\1/" -e "s/\(<<<<<<<\|>>>>>>>\) .*/\1/"
hg status
hg id
hg revert
hg diff
hg status
hg id
hg revert -r tip
hg diff
hg status
hg id
hg update -C
hg diff
hg status
hg id
cd ..; /bin/rm -rf t