Re: [PATCH] use get_merge_tool_path() also in is_available() to honor settings
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 8, 2021, 01:30 UTC
- Message-ID
- <xmqq7dj5rvme.fsf@gitster.g>
- In-Reply-To
- <pull.1032.git.git.1623098845733.gitgitgadget@gmail.com>
Adding David Aguilar as an area expert for help reviewing.
Thanks.
"Michael Schindler via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 79 quoted lines
> From: Michael Schindler <michael@compressconsult.com>
>
> 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@compressconsult.com>
> ---
> 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@compressconsult.com
>
> 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