Browse Source
Teach "-X <option>" command line argument to "git merge" that is passed to strategy implementations. "ours" and "theirs" autoresolution introduced by the previous commit can be asked to the recursive strategy. Signed-off-by: Avery Pennarun <apenwarr@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Avery Pennarun
15 years ago
committed by
Junio C Hamano
11 changed files with 162 additions and 26 deletions
@ -0,0 +1,56 @@
@@ -0,0 +1,56 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='Merge-recursive ours and theirs variants' |
||||
. ./test-lib.sh |
||||
|
||||
test_expect_success setup ' |
||||
for i in 1 2 3 4 5 6 7 8 9 |
||||
do |
||||
echo "$i" |
||||
done >file && |
||||
git add file && |
||||
cp file elif && |
||||
git commit -m initial && |
||||
|
||||
sed -e "s/1/one/" -e "s/9/nine/" >file <elif && |
||||
git commit -a -m ours && |
||||
|
||||
git checkout -b side HEAD^ && |
||||
|
||||
sed -e "s/9/nueve/" >file <elif && |
||||
git commit -a -m theirs && |
||||
|
||||
git checkout master^0 |
||||
' |
||||
|
||||
test_expect_success 'plain recursive - should conflict' ' |
||||
git reset --hard master && |
||||
test_must_fail git merge -s recursive side && |
||||
grep nine file && |
||||
grep nueve file && |
||||
! grep 9 file && |
||||
grep one file && |
||||
! grep 1 file |
||||
' |
||||
|
||||
test_expect_success 'recursive favouring theirs' ' |
||||
git reset --hard master && |
||||
git merge -s recursive -Xtheirs side && |
||||
! grep nine file && |
||||
grep nueve file && |
||||
! grep 9 file && |
||||
grep one file && |
||||
! grep 1 file |
||||
' |
||||
|
||||
test_expect_success 'recursive favouring ours' ' |
||||
git reset --hard master && |
||||
git merge -s recursive -X ours side && |
||||
grep nine file && |
||||
! grep nueve file && |
||||
! grep 9 file && |
||||
grep one file && |
||||
! grep 1 file |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue