David Aguilar <davvid@xxxxxxxxx> writes: > 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@xxxxxxxxx> > --- > Rebased to include tests and test fixes. Thanks. Will queue after applying a single fix-up again. > > git-mergetool.sh | 11 ++++++++++- > t/t7610-mergetool.sh | 25 +++++++++++++++++++++++++ > 2 files changed, 35 insertions(+), 1 deletion(-) > > diff --git a/git-mergetool.sh b/git-mergetool.sh > index b06ae78..f67bab5 100755 > --- a/git-mergetool.sh > +++ b/git-mergetool.sh > @@ -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 > diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh > index 39469d9..db723e8 100755 > --- a/t/t7610-mergetool.sh > +++ b/t/t7610-mergetool.sh > @@ -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 > ' -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html