summaryrefslogtreecommitdiff
path: root/git-mergetool.sh
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2014-04-21 00:17:34 (GMT)
committerJunio C Hamano <gitster@pobox.com>2014-04-22 19:49:46 (GMT)
commit4ecc63d7f982aa65038048bcdaf49e99b428b028 (patch)
treed16dc5133ac4a9a6fa9b313749d2e32098ab321a /git-mergetool.sh
parent779792a5f24bb4e8049c4f88ad752e70d4a8a080 (diff)
downloadgit-4ecc63d7f982aa65038048bcdaf49e99b428b028.zip
git-4ecc63d7f982aa65038048bcdaf49e99b428b028.tar.gz
git-4ecc63d7f982aa65038048bcdaf49e99b428b028.tar.bz2
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>
Diffstat (limited to 'git-mergetool.sh')
-rwxr-xr-xgit-mergetool.sh14
1 files 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)"