diff options:
--cumulative is deprecated --> remove
-G / -S: reword -S to emphase the difference to -G
revision options:
--abbrev: reword, to emphase the --abbrev-commit requirement
this is used in git 1.8's
git checkout <branch>
as a shorthand for
git checkout -b <branch> --track <remote>/<branch>
in case <branch> exists on exactly one remote and is not a local branch
ake care of mutually exclusive options.
Add _description using $state_descr.
Add completions for --debug=flag.
Fix typo (pointed out by Daniel Shahaf).
Currently, __git-shortlog () says that 'git shortlog' can only accept
commits as arguments (probably because the official documentation says
this). This is entirely untrue: shortlog can accept
commit-range-or-file, just like log can. Fix the completer by copying
out segments from the __git-log () function.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
The configuration variables branch.*.pushremote and remote.pushdefault
are relatively new, and are currently not completed by ZSH. Fix this.
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
When a branch or tag name is completed with zsh in a large git repo, the
completion is slow if the given prefix doesn't match a file or directory in
the current working directory. Testing with linux.git, which contains release
tags like v3.9 and a directory virt/:
git log v<tab>
takes about 0.5 seconds, while
git log v3<tab>
takes about 25 seconds.
(Timed using zsh 4.3.17, on a fairly slow cpu. zsh from git appears to be
quite a bit faster, but the difference between completing v and v3 is still
large.)
The difference between the two is that v<tab> passes the result of v* to git
ls-files while v3<tab> determines that v3* matches no files, and passes an
empty prefix to git ls-files. So git ls-files lists all files in the repo
and passes that on to _multi_parts.
Making git do the expansion of the * after the prefix lets git ls-files v3*
return an empty list, making _multi_parts job easier.
This does not affect the behavior of git log <tab>, but improves the
performance of partial tag and branch tab-completion in the common case where
file names and tag/branch names don't overlap.