On Wed, May 29, 2013 at 2:44 AM, SZEDER Gábor <szeder@xxxxxxxxxx> wrote: > On Tue, May 28, 2013 at 10:20:48PM -0500, Felipe Contreras wrote: >> It's _very_ slow in many cases, and there's really no point in fetching >> *everything* from the remote just for completion. In many cases it might >> be faster for the user to type the whole thing. >> >> If the user manually specifies 'refs/*', then the full ls-remote >> completion is triggered. >> >> Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> >> --- >> contrib/completion/git-completion.bash | 10 ++-------- >> 1 file changed, 2 insertions(+), 8 deletions(-) >> >> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash >> index 1c35eef..2ce4f7d 100644 >> --- a/contrib/completion/git-completion.bash >> +++ b/contrib/completion/git-completion.bash >> @@ -427,14 +427,8 @@ __git_refs () >> done >> ;; >> *) >> - git ls-remote "$dir" HEAD ORIG_HEAD 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null | \ >> - while read -r hash i; do >> - case "$i" in >> - *^{}) ;; >> - refs/*) echo "${i#refs/*/}" ;; >> - *) echo "$i" ;; >> - esac >> - done >> + echo "HEAD" >> + git for-each-ref --format="%(refname:short)" -- "refs/remotes/$dir/" | sed -e "s#^$dir/##" > > This case statement is only executed when $dir is not a git directory, > so what ensures that the cwd is in a git repo or work tree when > executing this brach of the case statement? What about 'git > --git-dir=/path/to/repo' invocations or when $GIT_DIR is specified? 'git --git-dir=foo fetch <tab>' doesn't even work. I sent the patches to fix it, but as usual, nobody cared about actual real fixes. $GIT_DIR works fine, why wouldn't it? -- Felipe Contreras -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html