threads / patch / 44149

patchgit-gui: stop using deprecated merge syntax

Subject: [PATCH] git-gui: stop using deprecated merge syntax

## tl;dr

7 messages between Sep 24, 2016 and Oct 3, 2016. Diffs are folded; open one to read it.

replies: 6people: 5as markdown or json

René Scharfe· Sep 24, 2016, 11:30 UTC · lore

Starting with v2.5.0 git merge can handle FETCH_HEAD internally and warns when it's called like 'git merge <message> HEAD <commit>' because that syntax is deprecated. Use this feature in git-gui and get rid of that warning.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
---
Tested only _very_ lightly!
 git-gui/lib/merge.tcl | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
Show changes to git-gui/lib/merge.tcl +1 −6
diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
index 460d32f..5ab6f8f 100644
--- a/git-gui/lib/merge.tcl
+++ b/git-gui/lib/merge.tcl
@@ -112,12 +112,7 @@ method _start {} {
 	close $fh
 	set _last_merged_branch $branch
 
-	set cmd [list git]
-	lappend cmd merge
-	lappend cmd --strategy=recursive
-	lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
-	lappend cmd HEAD
-	lappend cmd $name
+	set cmd [list git merge --strategy=recursive FETCH_HEAD]
 
 	ui_status [mc "Merging %s and %s..." $current_branch $stitle]
 	set cons [console::new [mc "Merge"] "merge $stitle"]
-- 
2.10.0
Johannes Sixt· Sep 24, 2016, 18:22 UTC · re: René Scharfe · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

Am 24.09.2016 um 13:30 schrieb René Scharfe:
Show 31 quoted lines
> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
> warns when it's called like 'git merge <message> HEAD <commit>' because
> that syntax is deprecated.  Use this feature in git-gui and get rid of
> that warning.
>
> Signed-off-by: Rene Scharfe <l.s.r@web.de>
> ---
> Tested only _very_ lightly!
>
>  git-gui/lib/merge.tcl | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
> index 460d32f..5ab6f8f 100644
> --- a/git-gui/lib/merge.tcl
> +++ b/git-gui/lib/merge.tcl
> @@ -112,12 +112,7 @@ method _start {} {
>  	close $fh
>  	set _last_merged_branch $branch
>
> -	set cmd [list git]
> -	lappend cmd merge
> -	lappend cmd --strategy=recursive
> -	lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
> -	lappend cmd HEAD
> -	lappend cmd $name
> +	set cmd [list git merge --strategy=recursive FETCH_HEAD]
>
>  	ui_status [mc "Merging %s and %s..." $current_branch $stitle]
>  	set cons [console::new [mc "Merge"] "merge $stitle"]
>

Much better than my version. I had left fmt-merge-msg and added --no-log to treat merge.log config suitably. But this works too, and is much more obvious.

Tested-by: Johannes Sixt <j6t@kdbg.org>
-- Hannes
Junio C Hamano· Sep 25, 2016, 18:39 UTC · re: Johannes Sixt · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

Johannes Sixt <j6t@kdbg.org> writes:
Show 38 quoted lines
> Am 24.09.2016 um 13:30 schrieb René Scharfe:
>> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
>> warns when it's called like 'git merge <message> HEAD <commit>' because
>> that syntax is deprecated.  Use this feature in git-gui and get rid of
>> that warning.
>>
>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>> ---
>> Tested only _very_ lightly!
>>
>>  git-gui/lib/merge.tcl | 7 +------
>>  1 file changed, 1 insertion(+), 6 deletions(-)
>>
>> diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
>> index 460d32f..5ab6f8f 100644
>> --- a/git-gui/lib/merge.tcl
>> +++ b/git-gui/lib/merge.tcl
>> @@ -112,12 +112,7 @@ method _start {} {
>>  	close $fh
>>  	set _last_merged_branch $branch
>>
>> -	set cmd [list git]
>> -	lappend cmd merge
>> -	lappend cmd --strategy=recursive
>> -	lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
>> -	lappend cmd HEAD
>> -	lappend cmd $name
>> +	set cmd [list git merge --strategy=recursive FETCH_HEAD]
>>
>>  	ui_status [mc "Merging %s and %s..." $current_branch $stitle]
>>  	set cons [console::new [mc "Merge"] "merge $stitle"]
>>
>
> Much better than my version. I had left fmt-merge-msg and added
> --no-log to treat merge.log config suitably. But this works too, and
> is much more obvious.
>
> Tested-by: Johannes Sixt <j6t@kdbg.org>
Thanks both.

We can finally deprecate and remove the ancient "git merge" syntax with this, which should make me happy, but with git-gui maintainer missing, it nudges me to be an interim maintainer one more time.

Sigh...
Stefan Beller· Sep 26, 2016, 17:23 UTC · re: Junio C Hamano · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

On Sun, Sep 25, 2016 at 11:39 AM, Junio C Hamano <gitster@pobox.com> wrote:
Show 40 quoted lines
> Johannes Sixt <j6t@kdbg.org> writes:
>
>> Am 24.09.2016 um 13:30 schrieb René Scharfe:
>>> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
>>> warns when it's called like 'git merge <message> HEAD <commit>' because
>>> that syntax is deprecated.  Use this feature in git-gui and get rid of
>>> that warning.
>>>
>>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>>> ---
>>> Tested only _very_ lightly!
>>>
>>>  git-gui/lib/merge.tcl | 7 +------
>>>  1 file changed, 1 insertion(+), 6 deletions(-)
>>>
>>> diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
>>> index 460d32f..5ab6f8f 100644
>>> --- a/git-gui/lib/merge.tcl
>>> +++ b/git-gui/lib/merge.tcl
>>> @@ -112,12 +112,7 @@ method _start {} {
>>>      close $fh
>>>      set _last_merged_branch $branch
>>>
>>> -    set cmd [list git]
>>> -    lappend cmd merge
>>> -    lappend cmd --strategy=recursive
>>> -    lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
>>> -    lappend cmd HEAD
>>> -    lappend cmd $name
>>> +    set cmd [list git merge --strategy=recursive FETCH_HEAD]
>>>
>>>      ui_status [mc "Merging %s and %s..." $current_branch $stitle]
>>>      set cons [console::new [mc "Merge"] "merge $stitle"]
>>>
>>
>> Much better than my version. I had left fmt-merge-msg and added
>> --no-log to treat merge.log config suitably. But this works too, and
>> is much more obvious.
>>
>> Tested-by: Johannes Sixt <j6t@kdbg.org>
Reviewed-by: Stefan Beller <sbeller@google.com>
Pat Thoyts· Oct 3, 2016, 08:30 UTC · re: Stefan Beller · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

Stefan Beller <sbeller@google.com> writes:
Show 44 quoted lines
>On Sun, Sep 25, 2016 at 11:39 AM, Junio C Hamano <gitster@pobox.com> wrote:
>> Johannes Sixt <j6t@kdbg.org> writes:
>>
>>> Am 24.09.2016 um 13:30 schrieb René Scharfe:
>>>> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
>>>> warns when it's called like 'git merge <message> HEAD <commit>' because
>>>> that syntax is deprecated.  Use this feature in git-gui and get rid of
>>>> that warning.
>>>>
>>>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>>>> ---
>>>> Tested only _very_ lightly!
>>>>
>>>>  git-gui/lib/merge.tcl | 7 +------
>>>>  1 file changed, 1 insertion(+), 6 deletions(-)
>>>>
>>>> diff --git a/git-gui/lib/merge.tcl b/git-gui/lib/merge.tcl
>>>> index 460d32f..5ab6f8f 100644
>>>> --- a/git-gui/lib/merge.tcl
>>>> +++ b/git-gui/lib/merge.tcl
>>>> @@ -112,12 +112,7 @@ method _start {} {
>>>>      close $fh
>>>>      set _last_merged_branch $branch
>>>>
>>>> -    set cmd [list git]
>>>> -    lappend cmd merge
>>>> -    lappend cmd --strategy=recursive
>>>> -    lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
>>>> -    lappend cmd HEAD
>>>> -    lappend cmd $name
>>>> +    set cmd [list git merge --strategy=recursive FETCH_HEAD]
>>>>
>>>>      ui_status [mc "Merging %s and %s..." $current_branch $stitle]
>>>>      set cons [console::new [mc "Merge"] "merge $stitle"]
>>>>
>>>
>>> Much better than my version. I had left fmt-merge-msg and added
>>> --no-log to treat merge.log config suitably. But this works too, and
>>> is much more obvious.
>>>
>>> Tested-by: Johannes Sixt <j6t@kdbg.org>
>
>Reviewed-by: Stefan Beller <sbeller@google.com>
>

The only problem I see here is that generally git-gui tries to continue to work with older versions of git as well. So adding a guard using the git-version procedure should maintain that backwards compatibility.

I suggest:
From c2716458f05893ca88c05ce211a295a330e74590 Mon Sep 17 00:00:00 2001
From:  René Scharfe <l.s.r@web.de>
Date: Sat, 24 Sep 2016 13:30:22 +0200
Subject: [PATCH] git-gui: stop using deprecated merge syntax

Starting with v2.5.0 git merge can handle FETCH_HEAD internally and warns when it's called like 'git merge <message> HEAD <commit>' because that syntax is deprecated. Use this feature in git-gui and get rid of that warning.

Tested-by: Johannes Sixt <j6t@kdbg.org>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
---
 lib/merge.tcl | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)
Show changes to lib/merge.tcl +10 −7
diff --git a/lib/merge.tcl b/lib/merge.tcl
index 460d32f..2361b78 100644
--- a/lib/merge.tcl
+++ b/lib/merge.tcl
@@ -112,13 +112,16 @@ method _start {} {
 	close $fh
 	set _last_merged_branch $branch
 
-	set cmd [list git]
-	lappend cmd merge
-	lappend cmd --strategy=recursive
-	lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
-	lappend cmd HEAD
-	lappend cmd $name
-
+	if {[git-version >= "2.5.0"]} {
+		set cmd [list git merge --strategy=recursive FETCH_HEAD]
+	} else {
+		set cmd [list git]
+		lappend cmd merge
+		lappend cmd --strategy=recursive
+		lappend cmd [git fmt-merge-msg <[gitdir FETCH_HEAD]]
+		lappend cmd HEAD
+		lappend cmd $name
+	}
 	ui_status [mc "Merging %s and %s..." $current_branch $stitle]
 	set cons [console::new [mc "Merge"] "merge $stitle"]
 	console::exec $cons $cmd [cb _finish $cons]
-- 
2.10.0.windows.1
René Scharfe· Oct 3, 2016, 09:45 UTC · re: Pat Thoyts · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

Am 03.10.2016 um 10:30 schrieb Pat Thoyts:
> The only problem I see here is that generally git-gui tries to continue
> to work with older versions of git as well. So adding a guard using the
> git-version procedure should maintain that backwards compatibility.
Makes sense for a stand-alone tool.
Show 16 quoted lines
> I suggest:
>
> From c2716458f05893ca88c05ce211a295a330e74590 Mon Sep 17 00:00:00 2001
> From:  René Scharfe <l.s.r@web.de>
> Date: Sat, 24 Sep 2016 13:30:22 +0200
> Subject: [PATCH] git-gui: stop using deprecated merge syntax
>
> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
> warns when it's called like 'git merge <message> HEAD <commit>' because
> that syntax is deprecated.  Use this feature in git-gui and get rid of
> that warning.
>
> Tested-by: Johannes Sixt <j6t@kdbg.org>
> Reviewed-by: Stefan Beller <sbeller@google.com>
> Signed-off-by: Rene Scharfe <l.s.r@web.de>
> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>

OK, but perhaps move me from From: to Original-patch-by: as the version check is a big enough change in itself. Or add a separate commit for it. Or at least mention that you added the check in the commit message.

Thanks, René

Pat Thoyts· Oct 3, 2016, 23:15 UTC · re: René Scharfe · lore

Re: [PATCH] git-gui: stop using deprecated merge syntax

René Scharfe <l.s.r@web.de> writes:
Show 31 quoted lines
>Am 03.10.2016 um 10:30 schrieb Pat Thoyts:
>> The only problem I see here is that generally git-gui tries to continue
>> to work with older versions of git as well. So adding a guard using the
>> git-version procedure should maintain that backwards compatibility.
>
>Makes sense for a stand-alone tool.
>
>> I suggest:
>>
>> From c2716458f05893ca88c05ce211a295a330e74590 Mon Sep 17 00:00:00 2001
>> From:  René Scharfe <l.s.r@web.de>
>> Date: Sat, 24 Sep 2016 13:30:22 +0200
>> Subject: [PATCH] git-gui: stop using deprecated merge syntax
>>
>> Starting with v2.5.0 git merge can handle FETCH_HEAD internally and
>> warns when it's called like 'git merge <message> HEAD <commit>' because
>> that syntax is deprecated.  Use this feature in git-gui and get rid of
>> that warning.
>>
>> Tested-by: Johannes Sixt <j6t@kdbg.org>
>> Reviewed-by: Stefan Beller <sbeller@google.com>
>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>> Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
>
>OK, but perhaps move me from From: to Original-patch-by: as the
>version check is a big enough change in itself.  Or add a separate
>commit for it.  Or at least mention that you added the check in the
>commit message.
>
>Thanks,
>René

As this is one of the ones already staged to git's 'next' I'll make this as a separate commit on top.

-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD

← back to recent threads