Subject: Re: [PATCH 2/2] mergetool: run prompt only if guessed tool

From: David Aguilar <[email-masked]>
Date: Mon, 21 Apr 2014 21:59:52 -0700

[Cc:ing Charles in case he has an opinion, this behavior dates back to the original MT]

On Sun, Apr 20, 2014 at 07:17:34PM -0500, Felipe Contreras wrote:
> It's annoying to see the prompt:
> 
>   Hit return to start merge resolution tool (foo):
> 
> Every time the user does 'git mergetool' even if the user already
> configured 'foo' as the wanted tool.
> 
> Display this prompt only when the user hasn't explicitly configured a
> tool.

I agree this is probably helpful.
Most users I've met end up configuring mergetool.prompt=false.

Thanks

> Signed-off-by: Felipe Contreras <[email-masked]>
> ---
>  git-mergetool.sh | 14 +++++++++++---
>  1 file changed, 11 insertions(+), 3 deletions(-)
> 
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index 332528f..d08dc92 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -277,7 +277,7 @@ merge_file () {
>  	echo "Normal merge conflict for '$MERGED':"
>  	describe_file "$local_mode" "local" "$LOCAL"
>  	describe_file "$remote_mode" "remote" "$REMOTE"
> -	if "$prompt" = true
> +	if test "$guessed_merge_tool" = true || test "$prompt" = true
>  	then
>  		printf "Hit return to start merge resolution tool (%s): " "$merge_tool"
>  		read ans || return 1
> @@ -315,7 +315,8 @@ merge_file () {
>  	return 0
>  }
>  
> -prompt=$(git config --bool mergetool.prompt || echo true)
> +prompt=$(git config --bool mergetool.prompt)
> +guessed_merge_tool=false
>  
>  while test $# != 0
>  do
> @@ -373,7 +374,14 @@ prompt_after_failed_merge () {
>  
>  if test -z "$merge_tool"
>  then
> -	merge_tool=$(get_merge_tool "$merge_tool") || exit
> +	# Check if a merge tool has been configured
> +	merge_tool=$(get_configured_merge_tool)
> +	# Try to guess an appropriate merge tool if no tool has been set.
> +	if test -z "$merge_tool"
> +	then
> +		merge_tool=$(guess_merge_tool) || exit
> +		guessed_merge_tool=true
> +	fi
>  fi
>  merge_keep_backup="$(git config --bool mergetool.keepBackup || echo true)"
>  merge_keep_temporaries="$(git config --bool mergetool.keepTemporaries || echo false)"
> -- 
> 1.9.2+fc1.1.g5c924db
> 
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to [email-masked]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
David