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:
parent
faaab8d571
commit
a2986045e3
@ -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
|
||||
|
@ -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
|
||||
'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user