05fb8726cc
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>
50 lines
1.3 KiB
Plaintext
50 lines
1.3 KiB
Plaintext
git-mergetool{litdd}lib(1)
|
|
==========================
|
|
|
|
NAME
|
|
----
|
|
git-mergetool--lib - Common Git merge tool shell scriptlets
|
|
|
|
SYNOPSIS
|
|
--------
|
|
[verse]
|
|
'TOOL_MODE=(diff|merge) . "$(git --exec-path)/git-mergetool{litdd}lib"'
|
|
|
|
DESCRIPTION
|
|
-----------
|
|
|
|
This is not a command the end user would want to run. Ever.
|
|
This documentation is meant for people who are studying the
|
|
Porcelain-ish scripts and/or are writing new ones.
|
|
|
|
The 'git-mergetool{litdd}lib' scriptlet is designed to be sourced (using
|
|
`.`) by other shell scripts to set up functions for working
|
|
with Git merge tools.
|
|
|
|
Before sourcing 'git-mergetool{litdd}lib', your script must set `TOOL_MODE`
|
|
to define the operation mode for the functions listed below.
|
|
'diff' and 'merge' are valid values.
|
|
|
|
FUNCTIONS
|
|
---------
|
|
get_merge_tool::
|
|
returns a merge tool. the return code is 1 if we returned a guessed
|
|
merge tool, else 0. '$GIT_MERGETOOL_GUI' may be set to 'true' to
|
|
search for the appropriate guitool.
|
|
|
|
get_merge_tool_cmd::
|
|
returns the custom command for a merge tool.
|
|
|
|
get_merge_tool_path::
|
|
returns the custom path for a merge tool.
|
|
|
|
run_merge_tool::
|
|
launches a merge tool given the tool name and a true/false
|
|
flag to indicate whether a merge base is present.
|
|
'$MERGED', '$LOCAL', '$REMOTE', and '$BASE' must be defined
|
|
for use by the merge tool.
|
|
|
|
GIT
|
|
---
|
|
Part of the linkgit:git[1] suite
|