Subject: Re: [PATCH] mergetool merge/skip/abort

From: Charles Bailey <[email-masked]>
Date: Wed, 21 Jan 2009 17:04:34 +0000

On Wed, Jan 21, 2009 at 09:37:20AM -0500, Caleb Cushing wrote:
> ---
>  git-mergetool.sh |   24 ++++++++++++++++++++----
>  1 files changed, 20 insertions(+), 4 deletions(-)
> 
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index 00e1337..43d2a9e 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -177,11 +177,27 @@ merge_file () {
>      describe_file "$local_mode" "local" "$LOCAL"
>      describe_file "$remote_mode" "remote" "$REMOTE"
>      if "$prompt" = true; then
> -       printf "Hit return to start merge resolution tool (%s): " "$merge_tool"
> -       read ans
> -    fi
> +               while true; do
> +               printf "Use (m)erge file or (s)skip file, or (a)bort? (%s): " \
> +               "$merge_tool"
> +               read ans
> +               case "$ans" in
> +                       [mM]*)
> +                       break
> +                       ;;
> +                       [sS]*)
> +                       cleanup_temp_files
> +                       return 0
> +                       ;;
> +                       [aA]*)
> +                       cleanup_temp_files
> +                       exit 0
> +                       ;;
> +               esac
> +               done
> +       fi

This looks to me like no merge will happen if --no-prompt/-y or
mergetool.prompt is set to false. Have you tested with this option or
have I misread?

Also, I think you've lost some tabs. Mergetool does have some
inconsistent tabbing but they way I've been aiming towards (which
matches most, but not all of git-mergetool.sh) is to use tabs == 8
spaces for indents but to indent each level by 4 spaces. e.g. three
levels of indent is one tab plus four spaces.

It might be quite nice to offer the option of directly using an 'ours'
or 'theirs' as an alternative to skip for binary files. A bit like
symlinks are handled in mergetool.

Charles.