mergetool: run prompt only if guessed tool

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.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Felipe Contreras 2014-04-20 19:17:34 -05:00 коммит произвёл Junio C Hamano
Родитель 779792a5f2
Коммит 4ecc63d7f9
1 изменённых файлов: 11 добавлений и 3 удалений

Просмотреть файл

@ -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)"