diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-01-24 00:16:37 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-01-24 00:16:37 +0300 |
commit | 14b9d9aa0d2fc6fd81d7a392fc1cc951a9d9d115 (patch) | |
tree | 1ca0e09bdde1dc240bb9051cccf1ae45c3cd6570 /t | |
parent | 0bbab7d2ab61b6aad217706e0879db561e1bdfae (diff) | |
parent | fd48b464747c275b3d014b3f14d60d9ac19d184a (diff) |
Merge branch 'jc/merge-symlink-ours-theirs'
"git merge -Xours/-Xtheirs" learned to use our/their version when
resolving a conflicting updates to a symbolic link.
* jc/merge-symlink-ours-theirs:
merge: teach -Xours/-Xtheirs to symbolic link merge
Diffstat (limited to 't')
-rwxr-xr-x | t/t6037-merge-ours-theirs.sh | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/t/t6037-merge-ours-theirs.sh b/t/t6037-merge-ours-theirs.sh index 3889eca4ae..0aebc6c028 100755 --- a/t/t6037-merge-ours-theirs.sh +++ b/t/t6037-merge-ours-theirs.sh @@ -73,4 +73,36 @@ test_expect_success 'pull passes -X to underlying merge' ' git reset --hard master && test_must_fail git pull -s recursive -X bork . side ' +test_expect_success SYMLINKS 'symlink with -Xours/-Xtheirs' ' + git reset --hard master && + git checkout -b two master && + ln -s target-zero link && + git add link && + git commit -m "add link pointing to zero" && + + ln -f -s target-two link && + git commit -m "add link pointing to two" link && + + git checkout -b one HEAD^ && + ln -f -s target-one link && + git commit -m "add link pointing to one" link && + + # we expect symbolic links not to resolve automatically, of course + git checkout one^0 && + test_must_fail git merge -s recursive two && + + # favor theirs to resolve to target-two? + git reset --hard && + git checkout one^0 && + git merge -s recursive -X theirs two && + git diff --exit-code two HEAD link && + + # favor ours to resolve to target-one? + git reset --hard && + git checkout one^0 && + git merge -s recursive -X ours two && + git diff --exit-code one HEAD link + +' + test_done |