Message ID | pull.613.git.1587107464322.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | complete: zsh: add missing sub cmd completion candidates | expand |
"Terry via GitGitGadget" <gitgitgadget@gmail.com> writes: > 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.
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.
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 }