threads / patch / 22305

patch, 2 partsAllow to override mergetool.prompt with $GIT_MERGETOOL*_PROMPT

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

## tl;dr

6 messages between Jan 20, 2010 and Jan 22, 2010. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Sebastian Schuberth· Jan 20, 2010, 15:30 UTC · lore

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(-)
Show changes to 2 files +11 −1

git-mergetool--lib.sh, git-mergetool.sh

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· Jan 20, 2010, 15:59 UTC · re: Sebastian Schuberth · lore

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

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· Jan 20, 2010, 16:10 UTC · re: Johannes Sixt · lore

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

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(-)
Show changes to 2 files +10 −1

git-mergetool--lib.sh, git-mergetool.sh

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· Jan 21, 2010, 07:44 UTC · re: Sebastian Schuberth · lore

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

Hi,
On Wed, Jan 20, 2010 at 04:30:26PM +0100, Sebastian Schuberth wrote:
Show 25 quoted lines
> 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.

Show 14 quoted lines
> 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· Jan 21, 2010, 10:10 UTC · re: David Aguilar · lore

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

On 21.01.2010 08:44, David Aguilar wrote:
Show 5 quoted lines
> 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.

Show 6 quoted lines
> 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· Jan 22, 2010, 01:58 UTC · re: Sebastian Schuberth · lore

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

On Thu, Jan 21, 2010 at 11:10:15AM +0100, Sebastian Schuberth wrote:
Show 25 quoted lines
> 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

← back to recent threads