Subject: Re: Equivalent of difftool.prompt per tool?

From: Junio C Hamano <[email-masked]>
Date: Fri, 19 Jul 2024 07:38:23 -0700

Ryan Zoeller <[email-masked]> writes:

> Is there a way to specify difftool.prompt on a per-tool basis,
> without manually passing --prompt or --no-prompt to override the
> global difftool.prompt setting?
>
> I generally want `difftool.prompt = false` set, but one specific
> tool I use has a high startup time and I'd like confirmation
> before launching it.
>
> If this isn't possible today, is difftool.<tool>.prompt something
> others would find useful?

I do not use difftool (nor mergetool) myself, but given how
difftool.<tool>.cmd and difftool.<tool>.path behave, it does not
sound like an unreasonable feature wish.

I'd imagine the feature itself should be trivial to add, but we'd
probably want to add test to t/t7800-difftool.sh, where there are
already existing tests for inteactions between difftool.prompt and
various command line options.

Thanks.

 git-difftool--helper.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git c/git-difftool--helper.sh w/git-difftool--helper.sh
index dd0c9a5b7f..872d787b09 100755
--- c/git-difftool--helper.sh
+++ w/git-difftool--helper.sh
@@ -12,7 +12,9 @@ TOOL_MODE=diff
 # and is overridden with $GIT_DIFFTOOL*_PROMPT.
 should_prompt () {
 	prompt_merge=$(git config --bool mergetool.prompt || echo true)
-	prompt=$(git config --bool difftool.prompt || echo $prompt_merge)
+	prompt=$(git config --bool "difftool.$merge_tool.prompt" ||
+		 git config --bool difftool.prompt ||
+		 echo $prompt_merge)
 	if test "$prompt" = true
 	then
 		test -z "$GIT_DIFFTOOL_NO_PROMPT"