David Aguilar <dav...@gmail.com> 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 <dav...@gmail.com>
> ---
> 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to