1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-12 17:36:08 +02:00

mergetool: honor tempfile configuration when resolving delete conflicts

Teach resolve_deleted_merge() to honor the mergetool.keepBackup and
mergetool.keepTemporaries configuration knobs.

This ensures that the worktree is kept pristine when resolving deletion
conflicts with the variables both set to false.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
David Aguilar 2016-03-09 23:13:59 -08:00 committed by Junio C Hamano
parent faaab8d571
commit a2986045e3
2 changed files with 35 additions and 1 deletions

View File

@ -126,7 +126,12 @@ resolve_deleted_merge () {
case "$ans" in
[mMcC]*)
git add -- "$MERGED"
cleanup_temp_files --save-backup
if test "$merge_keep_backup" = "true"
then
cleanup_temp_files --save-backup
else
cleanup_temp_files
fi
return 0
;;
[dD]*)
@ -135,6 +140,10 @@ resolve_deleted_merge () {
return 0
;;
[aA]*)
if test "$merge_keep_temporaries" = "false"
then
cleanup_temp_files
fi
return 1
;;
esac

View File

@ -279,6 +279,31 @@ test_expect_success 'mergetool produces no errors when keepBackup is used' '
: >expect &&
echo d | git mergetool a/a/file.txt 2>actual &&
test_cmp expect actual &&
! test -d a &&
git reset --hard HEAD
'
test_expect_success 'mergetool honors tempfile config for deleted files' '
test_config mergetool.keepTemporaries false &&
test_must_fail git merge move-to-b &&
echo d | git mergetool a/a/file.txt &&
! test -d a &&
git reset --hard HEAD
'
test_expect_success 'mergetool keeps tempfiles when aborting delete/delete' '
test_config mergetool.keepTemporaries true &&
test_must_fail git merge move-to-b &&
! (echo a; echo n) | git mergetool a/a/file.txt &&
test -d a/a &&
cat >expect <<-\EOF &&
file_BASE_.txt
file_LOCAL_.txt
file_REMOTE_.txt
EOF
ls -1 a/a | sed -e "s/[0-9]*//g" >actual &&
test_cmp expect actual &&
git clean -fdx &&
git reset --hard HEAD
'