diff --git a/tests/test-merge-local b/tests/test-merge-local new file mode 100755 --- /dev/null +++ b/tests/test-merge-local @@ -0,0 +1,50 @@ +#!/bin/sh + +hg init + +echo "# revision 0" +echo "unchanged" > unchanged +echo "remove me" > remove +echo "copy me" > copy +echo "move me" > move +for i in 1 2 3 4 5 6 7 8 9; do + echo "merge ok $i" >> zzz1_merge_ok +done +echo "merge bad" > zzz2_merge_bad +hg ci -Am "revision 0" -d "1000000 0" + +echo "# revision 1" +hg rm remove +hg mv move moved +hg cp copy copied +echo "added" > added +hg add added +echo "new first line" > zzz1_merge_ok +hg cat zzz1_merge_ok >> zzz1_merge_ok +echo "new last line" >> zzz2_merge_bad +hg ci -m "revision 1" -d "1000000 0" + +echo "# local changes to revision 0" +hg co 0 +echo "new last line" >> zzz1_merge_ok +echo "another last line" >> zzz2_merge_bad +hg diff --nodates | grep "^[+-][^<>]" +hg st + +echo "# local merge with bad merge tool" +HGMERGE=false hg co +hg co 0 +hg diff --nodates | grep "^[+-][^<>]" +hg st + +echo "# local merge with conflicts" +HGMERGE=merge hg co +hg co 0 +hg diff --nodates | grep "^[+-][^<>]" +hg st + +echo "# local merge without conflicts" +hg revert zzz2_merge_bad +HGMERGE=merge hg co +hg diff --nodates | grep "^[+-][^<>]" +hg st