Autocompletion does not work for git aliases
Nobody has claimed this yet.
- Dominant language
- Shell
- Stars
- 7.8k
- Forks
- 3.2k
- PR merge metrics
- No merged PRs in 30d
Description
I've never been able to get autocompletion working for git aliases I've created. My shell-fu is very weak, but I've spent several days debugging this over the course of months to no avail. Hopefully I'm just doing something stupid.
For comparison, here's what git branch <tab> looks like:
➜ .dotfiles git:(master) ✗ git branch
HEAD master origin/git-post-push-compare-url
ORIG_HEAD origin/HEAD origin/master
and here's gb <tab> (my git branch alias):
➜ .dotfiles git:(master) ✗ gb
LICENSE.md atom.symlink/ clojure/ git/ js/ ruby/ system/ zsh/
README.md bin/ functions/ homebrew/ osx/ script/ vim/
I added a couple debug messages to the completion script, and it looks like the test for file existence is failing. The following prints "Here," but never "There":
# completion.zsh
completion='$(brew --prefix)/share/zsh/site-functions/_git'
echo "Here"
if test -f $completion
then
echo "There"
source $completion
fi
If I cd into that directory and ls -l, I see the following:
➜ site-functions git:(master) ls -l
total 28
lrwxr-xr-x 1 kshipley admin 61 May 7 14:15 _docker -> ../../../Cellar/docker/1.6.0/share/zsh/site-functions/_docker
lrwxr-xr-x 1 kshipley admin 58 Aug 17 23:10 _flow -> ../../../Cellar/flow/0.14.0/share/zsh/site-functions/_flow
lrwxr-xr-x 1 kshipley admin 55 Sep 6 08:58 _git -> ../../../Cellar/git/2.5.1/share/zsh/site-functions/_git
lrwxr-xr-x 1 kshipley admin 60 Mar 25 11:42 _hg -> ../../../Cellar/mercurial/3.3.2/share/zsh/site-functions/_hg
lrwxr-xr-x 1 kshipley admin 55 Sep 6 09:50 _hub -> ../../../Cellar/hub/2.2.1/share/zsh/site-functions/_hub*
lrwxr-xr-x 1 kshipley admin 62 Jan 11 2015 _lein -> ../../../Cellar/leiningen/2.5.0/share/zsh/site-functions/_lein
lrwxr-xr-x 1 kshipley admin 70 Sep 6 08:58 git-completion.bash -> ../../../Cellar/git/2.5.1/share/zsh/site-functions/git-completion.bas
(And the files do exist on the other side of the symlink.)
I reinstalled git and hub this morning, figured out that ZSH was pointing to the Mac-default instead of my Homebrew-installed version, and tried every little bit of cleanup I could think of, but still no luck.
Here's my fork of the repo. I've made a few small tweaks (mostly removing things), so it's possible I removed something important.
Any ideas?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with completion.zsh and reproduce the difference between git branch <tab> and the gb alias. Inspect the _git completion path under Homebrew's share/zsh/site-functions and compare it with the fork's changes. Done means git aliases receive the expected git completion behavior in ZSH.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, shell, zsh
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100