mergetool: use get_merge_tool function
commit05fb8726cccc74908853c166248ff9b6abdafae5
authorDenton Liu <liu.denton@gmail.com>
Mon, 29 Apr 2019 06:21:08 +0000 (29 02:21 -0400)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 May 2019 14:11:59 +0000 (13 23:11 +0900)
treee879f61c63d326d264ab6911fd8e32e6445610e4
parent57d93c1d2ce7deddf485e7c826278fef6815ec6b
mergetool: use get_merge_tool function

In git-mergetool, the logic for getting which merge tool to use is
duplicated in git-mergetool--lib, except for the fact that it needs to
know whether the tool was guessed or not.

Rewrite `get_merge_tool` to return whether or not the tool was guessed
through the return code and make git-mergetool call this function
instead of duplicating the logic. Note that 1 was chosen to be the
return code of when a tool is guessed because it seems like a slightly
more abnormal condition than getting a tool that's explicitly specified
but this is completely arbitrary.

Also, let `$GIT_MERGETOOL_GUI` be set to determine whether or not the
guitool will be selected.

This change is not completely backwards compatible as there may be
external users of git-mergetool--lib. However, only one user,
git-diffall[1], was found from searching GitHub and Google, and this
tool is superseded by `git difftool --dir-diff` anyway. It seems very
unlikely that there exists an external caller that would take into
account the return code of `get_merge_tool` as it would always return 0
before this change so this change probably does not affect any external
users.

[1]: https://github.com/thenigan/git-diffall

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-mergetool--lib.txt
git-difftool--helper.sh
git-mergetool--lib.sh
git-mergetool.sh