threads / patch / 55800

patchcontrib/completion: fix remote completion for "git push/remote"

Subject: [PATCH] contrib/completion: fix remote completion for "git push/remote"

## tl;dr

3 messages between May 30, 2021 and May 30, 2021. Diffs are folded; open one to read it.

replies: 2people: 2as markdown or json

David Aguilar· May 30, 2021, 02:49 UTC · lore

If __git_cmd_idx is empty then zsh will silelntly fail to complete remotes when doing "git push <tab>".

Ensure that __git_cmd_idx is non-empty before using it in __git_complete_remote_or_refspec.

This was tested on zsh 5.7.1 (x86_64-apple-darwin19.0). Other versions of zsh, eg. zsh 5.0.2 (x86_64-redhat-linux-gnu), do not exhibit this behavior.

Signed-off-by: David Aguilar <davvid@gmail.com>
---
Further testing of the completion behavior spotted this regression.

This should be applied on top of, "contrib/completion: avoid empty arithemetic expressions". and could arguably be squashed into that commit.

I have my zshrc setup to point directly to a git.git worktree and a recent update seems to have caused these regressions.

 contrib/completion/git-completion.bash | 3 +++
 1 file changed, 3 insertions(+)
Show changes to contrib/completion/git-completion.bash +3 −0
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index d51ff5302d..bc1aea82bf 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1006,6 +1006,9 @@ __git_complete_revlist ()
 
 __git_complete_remote_or_refspec ()
 {
+	if [ -z "$__git_cmd_idx" ]; then
+		__git_cmd_idx=1
+	fi
 	local cur_="$cur" cmd="${words[__git_cmd_idx]}"
 	local i c=$((__git_cmd_idx+1)) remote="" pfx="" lhs=1 no_complete_refspec=0
 	if [ "$cmd" = "remote" ]; then
-- 
2.32.0.rc2.2.ga063d53b1a
Eric Sunshine· May 30, 2021, 03:12 UTC · re: David Aguilar · lore

Re: [PATCH] contrib/completion: fix remote completion for "git push/remote"

On Sat, May 29, 2021 at 10:49 PM David Aguilar <davvid@gmail.com> wrote:
> If __git_cmd_idx is empty then zsh will silelntly fail to
> complete remotes when doing "git push <tab>".
s/silelntly/silently/
Show 8 quoted lines
> Ensure that __git_cmd_idx is non-empty before using it in
> __git_complete_remote_or_refspec.
>
> This was tested on zsh 5.7.1 (x86_64-apple-darwin19.0).
> Other versions of zsh, eg. zsh 5.0.2 (x86_64-redhat-linux-gnu),
> do not exhibit this behavior.
>
> Signed-off-by: David Aguilar <davvid@gmail.com>
David Aguilar· May 30, 2021, 03:32 UTC · re: Eric Sunshine · lore

Re: [PATCH] contrib/completion: fix remote completion for "git push/remote"

On Sat, May 29, 2021 at 8:12 PM Eric Sunshine <sunshine@sunshineco.com> wrote:
Show 6 quoted lines
>
> On Sat, May 29, 2021 at 10:49 PM David Aguilar <davvid@gmail.com> wrote:
> > If __git_cmd_idx is empty then zsh will silelntly fail to
> > complete remotes when doing "git push <tab>".
>
> s/silelntly/silently/

Thanks! I'm going to wait a bit for the completion experts to chime in before I prepare a v2.

For v2, I'm thinking it might make sense to go ahead and squash both of the completion changes into a single patch.

(sorry for the noisy resend -- I wasn't in text mode so vger dropped the original reply)

-- 
David

← back to recent threads