diff options
author | Denton Liu <liu.denton@gmail.com> | 2019-04-29 09:21:14 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-05-13 17:11:59 +0300 |
commit | 60aced3dfa68df60952fed28c4ae63a5bbda0275 (patch) | |
tree | c8b2ed84040a9627929143e478c4b9ef361d0801 /builtin/difftool.c | |
parent | 884630b2e2634969656faabc7f4e33cab2e32b35 (diff) |
mergetool: fallback to tool when guitool unavailable
In git-difftool, if the tool is called with --gui but `diff.guitool` is
not set, it falls back to `diff.tool`. Make git-mergetool also fallback
from `merge.guitool` to `merge.tool` if the former is undefined.
If git-difftool, when called with `--gui`, were to use
`get_configured_mergetool` in a future patch, it would also get the
fallback behavior in the following precedence:
1. diff.guitool
2. merge.guitool
3. diff.tool
4. merge.tool
The behavior for when difftool or mergetool are called without `--gui`
should be identical with or without this patch.
Note that the search loop could be written as
sections="merge"
keys="tool"
if diff_mode
then
sections="diff $sections"
fi
if gui_mode
then
keys="guitool $keys"
fi
merge_tool=$(
IFS=' '
for key in $keys
do
for section in $sections
do
selected=$(git config $section.$key)
if test -n "$selected"
then
echo "$selected"
return
fi
done
done)
which would make adding a mode in the future much easier. However,
adding a new mode will likely never happen as it is highly discouraged
so, as a result, it is written in its current form so that it is more
readable for future readers.
Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/difftool.c')
0 files changed, 0 insertions, 0 deletions