holman / holman/dotfiles

Autocompletion does not work for git aliases

Open
#210 4 comments 1 reaction 0 assignees View on GitHub

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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.