diff options
author | SZEDER Gábor <szeder@ira.uka.de> | 2011-10-08 16:54:40 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-10-21 14:38:23 -0700 |
commit | d79bcf2cf21ddb8c3fcbd95bafa431f872d47a96 (patch) | |
tree | be97a707136efaa90e99bb94b1f62aea96ae5cb2 | |
parent | completion: support full refs from remote repositories (diff) | |
download | tgif-d79bcf2cf21ddb8c3fcbd95bafa431f872d47a96.tar.xz |
completion: query only refs/heads/ in __git_refs_remotes()
__git_refs_remotes() is used to provide completion for refspecs to set
'remote.*.fetch' config variables for branches on the given remote.
So it's really only interested in refs under 'refs/heads/', but it
queries the remote for all its refs and then filters out all refs
outside of 'refs/heads/'.
Let 'git ls-remote' do the filtering.
Also remove the unused $cmd variable from __git_refs_remotes().
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | contrib/completion/git-completion.bash | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 8867e092b6..396c8e98f7 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -651,17 +651,14 @@ __git_refs2 () # __git_refs_remotes requires 1 argument (to pass to ls-remote) __git_refs_remotes () { - local cmd i is_hash=y - for i in $(git ls-remote "$1" 2>/dev/null); do - case "$is_hash,$i" in - n,refs/heads/*) + local i is_hash=y + for i in $(git ls-remote "$1" 'refs/heads/*' 2>/dev/null); do + case "$is_hash" in + n) is_hash=y echo "$i:refs/remotes/$1/${i#refs/heads/}" ;; - y,*) is_hash=n ;; - n,*^{}) is_hash=y ;; - n,refs/tags/*) is_hash=y;; - n,*) is_hash=y; ;; + y) is_hash=n ;; esac done } |