David Aguilar <[email protected]> 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 <[email protected]>
> ---
> 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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html