# [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT

6 messages from 2010-01-20 to 2010-01-22. Participants: Sebastian Schuberth, Johannes Sixt, David Aguilar.
Thread: https://gitlist.dev/t/22305

## Sebastian Schuberth, 2010-01-20 15:30

Subject: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <4B572192.2020606@gmail.com>
URL: https://gitlist.dev/e/4B572192.2020606%40gmail.com

```
This is for symmetry with git-difftool, and to make should_prompt_merge ()
reusable from within git-difftool--helper.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 git-mergetool--lib.sh |    9 +++++++++
 git-mergetool.sh      |    3 ++-
 2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 5b62785..16b0343 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -7,6 +7,15 @@ merge_mode() {
 	test "$TOOL_MODE" = merge
 }
 
+should_prompt_merge () {
+	local prompt=$(git config --bool mergetool.prompt || echo true)
+	if test "$prompt" = true; then
+		test -z "$GIT_MERGETOOL_NO_PROMPT"
+	else
+		test -n "$GIT_MERGETOOL_PROMPT"
+	fi
+}
+
 translate_merge_tool_path () {
 	case "$1" in
 	vimdiff)
diff --git a/git-mergetool.sh b/git-mergetool.sh
index b52a741..d453cb0 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -202,7 +202,8 @@ merge_file () {
     return 0
 }
 
-prompt=$(git config --bool mergetool.prompt || echo true)
+should_prompt_merge
+prompt=$?
 
 while test $# != 0
 do
-- 
1.6.5.1.1373.g71d1

```

## Johannes Sixt, 2010-01-20 15:59

Subject: Re: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <4B572870.6090001@viscovery.net>
URL: https://gitlist.dev/e/4B572870.6090001%40viscovery.net
In-Reply-To: <4B572192.2020606@gmail.com>

```
Sebastian Schuberth schrieb:
> +should_prompt_merge () {
> +	local prompt=$(git config --bool mergetool.prompt || echo true)

'local' is not portable. (The next patch shouldn't introduce it, either.)

> -prompt=$(git config --bool mergetool.prompt || echo true)
> +should_prompt_merge
> +prompt=$?

Previously, prompt was either "true" or "false", but now it is a number.
This is not what the user (function merge_file) expects.

-- Hannes

```

## Sebastian Schuberth, 2010-01-20 16:10

Subject: Re: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <4B572AED.1040801@gmail.com>
URL: https://gitlist.dev/e/4B572AED.1040801%40gmail.com
In-Reply-To: <4B572870.6090001@viscovery.net>

```
This is for symmetry with git-difftool, and to make should_prompt_merge ()
reusable from within git-difftool--helper.

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 git-mergetool--lib.sh |    9 +++++++++
 git-mergetool.sh      |    2 +-
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 5b62785..b0e4156 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -7,6 +7,15 @@ merge_mode() {
 	test "$TOOL_MODE" = merge
 }
 
+should_prompt_merge () {
+	prompt=$(git config --bool mergetool.prompt || echo true)
+	if test "$prompt" = true; then
+		test -z "$GIT_MERGETOOL_NO_PROMPT"
+	else
+		test -n "$GIT_MERGETOOL_PROMPT"
+	fi
+}
+
 translate_merge_tool_path () {
 	case "$1" in
 	vimdiff)
diff --git a/git-mergetool.sh b/git-mergetool.sh
index b52a741..69f1627 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -202,7 +202,7 @@ merge_file () {
     return 0
 }
 
-prompt=$(git config --bool mergetool.prompt || echo true)
+prompt=$(should_prompt_merge && echo true || echo false)
 
 while test $# != 0
 do
-- 
1.6.6.266.g55d982.dirty

```

## David Aguilar, 2010-01-21 07:44

Subject: Re: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <20100121074427.GA26973@gmail.com>
URL: https://gitlist.dev/e/20100121074427.GA26973%40gmail.com
In-Reply-To: <4B572192.2020606@gmail.com>

```
Hi,

On Wed, Jan 20, 2010 at 04:30:26PM +0100, Sebastian Schuberth wrote:
> This is for symmetry with git-difftool, and to make should_prompt_merge ()
> reusable from within git-difftool--helper.
> 
> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
> ---
>  git-mergetool--lib.sh |    9 +++++++++
>  git-mergetool.sh      |    3 ++-
>  2 files changed, 11 insertions(+), 1 deletions(-)
> 
> diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
> index 5b62785..16b0343 100644
> --- a/git-mergetool--lib.sh
> +++ b/git-mergetool--lib.sh
> @@ -7,6 +7,15 @@ merge_mode() {
>  	test "$TOOL_MODE" = merge
>  }
>  
> +should_prompt_merge () {
> +	local prompt=$(git config --bool mergetool.prompt || echo true)
> +	if test "$prompt" = true; then
> +		test -z "$GIT_MERGETOOL_NO_PROMPT"
> +	else
> +		test -n "$GIT_MERGETOOL_PROMPT"
> +	fi
> +}

Someone already mentioned dropping "local" here.

The GIT_DIFFTOOL*_PROMPT variables are implementation details
about how git-difftool passes options to git-difftool--helper.
We don't advertise them in the documentation so we probably
shouldn't support them aside from what is needed for
git-difftool.  We can drop this part.

61ed71dc just recently removed git-difftool--helper's use of
GIT_MERGE_TOOL based on this rationale.


> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index b52a741..d453cb0 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -202,7 +202,8 @@ merge_file () {
>      return 0
>  }
>  
> -prompt=$(git config --bool mergetool.prompt || echo true)
> +should_prompt_merge
> +prompt=$?
>  
>  while test $# != 0
>  do

git-difftool falling back to mergetool.prompt when
difftool.prompt is not available is good, especially
since we advertise that feature.

Once you drop the local declarations and the env. variable
it should be good to go.  Patch v2, soon?

-- 

	David

```

## Sebastian Schuberth, 2010-01-21 10:10

Subject: Re: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <4B582807.8070504@gmail.com>
URL: https://gitlist.dev/e/4B582807.8070504%40gmail.com
In-Reply-To: <20100121074427.GA26973@gmail.com>

```
On 21.01.2010 08:44, David Aguilar wrote:

> The GIT_DIFFTOOL*_PROMPT variables are implementation details
> about how git-difftool passes options to git-difftool--helper.
> We don't advertise them in the documentation so we probably
> shouldn't support them aside from what is needed for
> git-difftool.  We can drop this part.

Thanks for the explanation, I already was wondering why they don't 
appear in the docs.

> git-difftool falling back to mergetool.prompt when
> difftool.prompt is not available is good, especially
> since we advertise that feature.
>
> Once you drop the local declarations and the env. variable
> it should be good to go.  Patch v2, soon?

If I drop env. variable support, I don't see much reason to introduce 
the should_prompt_merge () at all. I'd then leave git-mergetool* as-is, 
and directly run "git config --bool mergetool.prompt" inside 
should_prompt_diff (). Would that be OK with you?

-- 
Sebastian Schuberth

```

## David Aguilar, 2010-01-22 01:58

Subject: Re: [PATCH 1/2] Allow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT
Message-ID: <20100122015802.GA20620@gmail.com>
URL: https://gitlist.dev/e/20100122015802.GA20620%40gmail.com
In-Reply-To: <4B582807.8070504@gmail.com>

```
On Thu, Jan 21, 2010 at 11:10:15AM +0100, Sebastian Schuberth wrote:
> On 21.01.2010 08:44, David Aguilar wrote:
>
>> The GIT_DIFFTOOL*_PROMPT variables are implementation details
>> about how git-difftool passes options to git-difftool--helper.
>> We don't advertise them in the documentation so we probably
>> shouldn't support them aside from what is needed for
>> git-difftool.  We can drop this part.
>
> Thanks for the explanation, I already was wondering why they don't  
> appear in the docs.
>
>> git-difftool falling back to mergetool.prompt when
>> difftool.prompt is not available is good, especially
>> since we advertise that feature.
>>
>> Once you drop the local declarations and the env. variable
>> it should be good to go.  Patch v2, soon?
>
> If I drop env. variable support, I don't see much reason to introduce  
> the should_prompt_merge () at all. I'd then leave git-mergetool* as-is,  
> and directly run "git config --bool mergetool.prompt" inside  
> should_prompt_diff (). Would that be OK with you?
>
> -- 
> Sebastian Schuberth

Sounds good.

Thanks,

-- 
		David

```
