diff mbox series

completion: bash: fix gitk alias regression

Message ID 20201205071023.1270390-1-felipe.contreras@gmail.com (mailing list archive)
State Accepted
Commit 076496457e1abe3058d48cb5c387d1face704494
Headers show
Series completion: bash: fix gitk alias regression | expand

Commit Message

Felipe Contreras Dec. 5, 2020, 7:10 a.m. UTC
Long time ago when the _git_complete helper was introduced, _gitk was
replaced with __gitk_main, and a placeholder for backwards compatibility
pointing to __git_wrap_main_gitk was left in place.

When "__git_complete gitk __gitk_main" was called, that created the
__git_wrap__gitk_main helper, which is just basically "__git_func_wrap
__gitk_main" plus `complete` options.

Unfortunately the commit b0a4b2d257 (completion: add support for
backwards compatibility, 2012-05-19) missed a previous instance of a
call to _gitk in _git_gitk

So, basically we had __git_wrap__git_main -> __git_func_wrap __git_main ->
__git_complete_command gitk -> _git_gitk -> _gitk ->
__git_wrap__gitk_main -> __git_func_wrap __gitk_main -> __gitk_main.

There was never any need to call __git_func_wrap twice. Since _git_gitk
is always called inside the wrapper, it can call __gitk_main directly.

And then, in commit 441ecdab37 (completion: bash: remove old compat
wrappers, 2020-10-27) _gitk was removed, which triggers the following
error:

  _git_gitk:9: command not found: _gitk

Let's call the correct function: __gitk_main.

Cc: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/completion/git-completion.bash | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Felipe Contreras Dec. 5, 2020, 7:12 a.m. UTC | #1
On Sat, Dec 5, 2020 at 1:10 AM Felipe Contreras
<felipe.contreras@gmail.com> wrote:
>
> Long time ago when the _git_complete helper was introduced, _gitk was
> replaced with __gitk_main, and a placeholder for backwards compatibility
> pointing to __git_wrap_main_gitk was left in place.
>
> When "__git_complete gitk __gitk_main" was called, that created the
> __git_wrap__gitk_main helper, which is just basically "__git_func_wrap
> __gitk_main" plus `complete` options.
>
> Unfortunately the commit b0a4b2d257 (completion: add support for
> backwards compatibility, 2012-05-19) missed a previous instance of a
> call to _gitk in _git_gitk
>
> So, basically we had __git_wrap__git_main -> __git_func_wrap __git_main ->
> __git_complete_command gitk -> _git_gitk -> _gitk ->
> __git_wrap__gitk_main -> __git_func_wrap __gitk_main -> __gitk_main.
>
> There was never any need to call __git_func_wrap twice. Since _git_gitk
> is always called inside the wrapper, it can call __gitk_main directly.
>
> And then, in commit 441ecdab37 (completion: bash: remove old compat
> wrappers, 2020-10-27) _gitk was removed, which triggers the following
> error:
>
>   _git_gitk:9: command not found: _gitk
>
> Let's call the correct function: __gitk_main.
>
> Cc: SZEDER Gábor <szeder@ira.uka.de>

Hmmm. SZEDER Gábor <szeder.dev@gmail.com>
Junio C Hamano Dec. 7, 2020, 9:44 p.m. UTC | #2
Felipe Contreras <felipe.contreras@gmail.com> writes:

> On Sat, Dec 5, 2020 at 1:10 AM Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
>>
>> Long time ago when the _git_complete helper was introduced, _gitk was
>> replaced with __gitk_main, and a placeholder for backwards compatibility
>> pointing to __git_wrap_main_gitk was left in place.
>>
>> When "__git_complete gitk __gitk_main" was called, that created the
>> __git_wrap__gitk_main helper, which is just basically "__git_func_wrap
>> __gitk_main" plus `complete` options.
>>
>> Unfortunately the commit b0a4b2d257 (completion: add support for
>> backwards compatibility, 2012-05-19) missed a previous instance of a
>> call to _gitk in _git_gitk
>>
>> So, basically we had __git_wrap__git_main -> __git_func_wrap __git_main ->
>> __git_complete_command gitk -> _git_gitk -> _gitk ->
>> __git_wrap__gitk_main -> __git_func_wrap __gitk_main -> __gitk_main.
>>
>> There was never any need to call __git_func_wrap twice. Since _git_gitk
>> is always called inside the wrapper, it can call __gitk_main directly.
>>
>> And then, in commit 441ecdab37 (completion: bash: remove old compat
>> wrappers, 2020-10-27) _gitk was removed, which triggers the following
>> error:
>>
>>   _git_gitk:9: command not found: _gitk
>>
>> Let's call the correct function: __gitk_main.
>>
>> Cc: SZEDER Gábor <szeder@ira.uka.de>
>
> Hmmm. SZEDER Gábor <szeder.dev@gmail.com>

Thanks.

We've seen two hotfixes including this one on the fc/zsh-completion
topic since it has been pushed down to 'master' for a month or so.
Can somebody give the entire topic a quick eyeballing again (the
range is 1d1c4a8759..af806a2c24) just to be sure?
diff mbox series

Patch

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 1ed03623cd..463a3124da 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1829,7 +1829,7 @@  _git_fsck ()
 
 _git_gitk ()
 {
-	_gitk
+	__gitk_main
 }
 
 # Lists matching symbol names from a tag (as in ctags) file.