threads / patch / 53249

patchcomplete: zsh: add missing sub cmd completion candidates

Subject: [PATCH] complete: zsh: add missing sub cmd completion candidates

## tl;dr

3 messages between Apr 17, 2020 and Oct 25, 2020. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Terry via GitGitGadget· Apr 17, 2020, 07:11 UTC · lore
From: Terry Moschou <tmoschou@gmail.com>

Add missing 'restore' and 'switch' sub commands to zsh completion candidate output. E.g.

  $ git re<tab>
  rebase    -- forward-port local commits to the updated upstream head
  reset     -- reset current HEAD to the specified state
  restore   -- restore working tree files
  $ git s<tab>
  show      -- show various types of objects
  status    -- show the working tree status
  switch    -- switch branches
Signed-off-by: Terry Moschou <tmoschou@gmail.com>
---
    complete: zsh: add missing sub cmd completion candidates
    
    Add missing 'restore' and 'switch' sub commands to zsh completion
    candidate output. E.g.
    
    $ git re<tab>
    rebase    -- forward-port local commits to the updated upstream head
    reset     -- reset current HEAD to the specified state
    restore   -- restore working tree files
    
    $ git s<tab>
    show      -- show various types of objects
    status    -- show the working tree status
    switch    -- switch branches
    
    Signed-off-by: Terry Moschou tmoschou@gmail.com [tmoschou@gmail.com]
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-613%2Ftmoschou%2Fupdate-zsh-completion-script-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-613/tmoschou/update-zsh-completion-script-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/613
 contrib/completion/git-completion.zsh | 2 ++
 1 file changed, 2 insertions(+)
Show changes to contrib/completion/git-completion.zsh +2 −0
diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
index eef4eff53df..ce47e86b60c 100644
--- a/contrib/completion/git-completion.zsh
+++ b/contrib/completion/git-completion.zsh
@@ -150,9 +150,11 @@ __git_zsh_cmd_common ()
 	push:'update remote refs along with associated objects'
 	rebase:'forward-port local commits to the updated upstream head'
 	reset:'reset current HEAD to the specified state'
+	restore:'restore working tree files'
 	rm:'remove files from the working tree and from the index'
 	show:'show various types of objects'
 	status:'show the working tree status'
+	switch:'switch branches'
 	tag:'create, list, delete or verify a tag object signed with GPG')
 	_describe -t common-commands 'common commands' list && _ret=0
 }

base-commit: de49261b050d9cd8ec73842356077bc5b606640f
-- 
gitgitgadget
Junio C Hamano· Apr 17, 2020, 18:24 UTC · re: Terry via GitGitGadget · lore

Re: [PATCH] complete: zsh: add missing sub cmd completion candidates

"Terry via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 16 quoted lines
> diff --git a/contrib/completion/git-completion.zsh b/contrib/completion/git-completion.zsh
> index eef4eff53df..ce47e86b60c 100644
> --- a/contrib/completion/git-completion.zsh
> +++ b/contrib/completion/git-completion.zsh
> @@ -150,9 +150,11 @@ __git_zsh_cmd_common ()
>  	push:'update remote refs along with associated objects'
>  	rebase:'forward-port local commits to the updated upstream head'
>  	reset:'reset current HEAD to the specified state'
> +	restore:'restore working tree files'
>  	rm:'remove files from the working tree and from the index'
>  	show:'show various types of objects'
>  	status:'show the working tree status'
> +	switch:'switch branches'
>  	tag:'create, list, delete or verify a tag object signed with GPG')
>  	_describe -t common-commands 'common commands' list && _ret=0
>  }

This is not a new issue, but it makes me wonder if we can initialize this list just once by running "git help" and picking up pieces from it. That way, we won't have to maintain this hardcoded list at all, no?

And if it is cumbersome to parse "git help" output, I do not think it is a worse solution than having to maintain the above list manually to add a new "--list-common-commands-for-zsh-completion" option to "git help" to produce something more easily parseable.

In any case, the patch is probably an improvement to make the list closer to what "git help" considers "common commands", but in the longer term, it may not be making it any better for maintainability.

Thanks.
Felipe Contreras· Oct 25, 2020, 03:35 UTC · re: Junio C Hamano · lore

Re: [PATCH] complete: zsh: add missing sub cmd completion candidates

On Fri, Apr 17, 2020 at 1:26 PM Junio C Hamano <gitster@pobox.com> wrote:
> This is not a new issue, but it makes me wonder if we can initialize
> this list just once by running "git help" and picking up pieces from
> it.  That way, we won't have to maintain this hardcoded list at all,
> no?

Yes, that would be nice, but what if the user has an older version of git without --list-cmds? No solution has been proposed for those cases in the bash script.

Most users of the zsh script are decoupled from the corresponding git version, and since you refused to graduate the scripts out of contrib, that gives distro maintainers the excuse not to automatically package the zsh script.

So no, given the current situation, I would rather keep updating them manually.
-- 
Felipe Contreras

← back to recent threads