mergetool: accept -g/--[no-]gui as arguments

In line with how difftool accepts a -g/--[no-]gui option, make mergetool
accept the same option in order to use the `merge.guitool` variable to
find the default mergetool instead of `merge.tool`.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Anmol Mago <anmolmago@gmail.com>
Signed-off-by: Brian Ho <briankyho@gmail.com>
Signed-off-by: David Lu <david.lu97@outlook.com>
Signed-off-by: Ryan Wang <shirui.wang@hotmail.com>
Acked-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Denton Liu
2018-10-24 12:25:31 -04:00
committed by Junio C Hamano
parent c4df23f792
commit 063f2bdbf7
3 changed files with 31 additions and 7 deletions

View File

@@ -350,17 +350,23 @@ guess_merge_tool () {
}
get_configured_merge_tool () {
# Diff mode first tries diff.tool and falls back to merge.tool.
# Merge mode only checks merge.tool
# If first argument is true, find the guitool instead
if test "$1" = true
then
gui_prefix=gui
fi
# Diff mode first tries diff.(gui)tool and falls back to merge.(gui)tool.
# Merge mode only checks merge.(gui)tool
if diff_mode
then
merge_tool=$(git config diff.tool || git config merge.tool)
merge_tool=$(git config diff.${gui_prefix}tool || git config merge.${gui_prefix}tool)
else
merge_tool=$(git config merge.tool)
merge_tool=$(git config merge.${gui_prefix}tool)
fi
if test -n "$merge_tool" && ! valid_tool "$merge_tool"
then
echo >&2 "git config option $TOOL_MODE.tool set to unknown tool: $merge_tool"
echo >&2 "git config option $TOOL_MODE.${gui_prefix}tool set to unknown tool: $merge_tool"
echo >&2 "Resetting to default..."
return 1
fi