Adding David Aguilar as an area expert for help reviewing. Thanks. "Michael Schindler via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Michael Schindler <michael@xxxxxxxxxxxxxxxxxxx> > > fix the is_available test used in git mergetool --tool-help or > git difftool --tool-help or to check the list of tools available when no > tool is configured/given with --tool > > symtoms: the actual tool running run_merge_tool () considers the difftool. > "$merge_tool".path and mergetool."$merge_tool".path and if configured > honors these. See get_merge_tool_path () in git-mergetool--lib.sh > If not set use fallback: translate_merge_tool_path "$merge_tool". > > The is_available () just uses translate_merge_tool_path "$merge_tool". > > repo 1: Configure an invalid path in mergetool."$merge_tool".path for a > tool of your choice. > You will be informed that the tool is available, but when trying to use > it will not be found because the invalid configured path is used. > > repo2: Install a tool of your choice on a nonstandard place (e.g. rename > the program) and configure mergetool."$merge_tool".path for this tool. > You will be informed that the tool is not available (because not found on > standard place), but when trying to run it will work. > > This fix will make the information consistent by using get_merge_tool_path() > also in is_available() > > Signed-off-by: Michael Schindler <michael@xxxxxxxxxxxxxxxxxxx> > --- > use get_merge_tool_path() also in is_available() to honor settings > > fix the is_available() used in git mergetool --tool-help or git difftool > --tool-help or used to check the list of tools available when no tool is > configured/given with --tool > > symtoms: the actual tool running run_merge_tool () considers the > difftool."$merge_tool".path and mergetool."$merge_tool".path and if > configured honors these. See get_merge_tool_path () in > git-mergetool--lib.sh If not defined use fallback: > translate_merge_tool_path "$merge_tool". > > The is_available () just uses translate_merge_tool_path "$merge_tool". > > repo 1: Configure an invalid path in mergetool."$merge_tool".path for a > tool of your choice. You will be informed that the tool is available, > but when trying to use it it will not be found because the invalid > configured path is used. > > repo2: Install a tool of your choice on a nonstandard place (e.g. rename > the program) and configure mergetool."$merge_tool".path for this tool. > You will be informed that the tool is not available (because not found > on standard place), but when trying to run it will work. > > This fix will make the information consistent by using > get_merge_tool_path() also in is_available() > > Signed-off-by: Michael Schindler michael@xxxxxxxxxxxxxxxxxxx > > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1032%2Fmichaelcompressconsult%2Fmergetoollib_is_available-v1 > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1032/michaelcompressconsult/mergetoollib_is_available-v1 > Pull-Request: https://github.com/git/git/pull/1032 > > git-mergetool--lib.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh > index 542a6a75eb3c..8b946e585d7f 100644 > --- a/git-mergetool--lib.sh > +++ b/git-mergetool--lib.sh > @@ -18,7 +18,7 @@ mode_ok () { > } > > is_available () { > - merge_tool_path=$(translate_merge_tool_path "$1") && > + merge_tool_path=$(get_merge_tool_path "$1") && > type "$merge_tool_path" >/dev/null 2>&1 > } > > > base-commit: c09b6306c6ca275ed9d0348a8c8014b2ff723cfb