summaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorSZEDER Gábor <szeder@ira.uka.de>2011-10-08 16:54:42 +0200
committerJunio C Hamano <gitster@pobox.com>2011-10-21 14:38:23 -0700
commitd51a8ecd5fedb6fd09a14fc1b07f8922d6963743 (patch)
tree9b3cb90838a460a29826d3ba942d0929dba122dc /contrib
parent48058f5df49fb9005418a7d025b374988908c0b5 (diff)
downloadgit-d51a8ecd5fedb6fd09a14fc1b07f8922d6963743.tar.gz
completion: fast initial completion for config 'remote.*.fetch' value
Refspecs for branches in a remote repository start with 'refs/heads/', so completing those refspecs with 'git config remote.origin.fetch <TAB>' always offers 'refs/heads/' first, because that's the unique part of the possible refspecs. But it does so only after querying the remote with 'git ls-remote', which can take a while when the request goes through some slower network to a remote server. Don't waste the user's time and offer 'refs/heads/' right away for 'git config remote.origin.fetch <TAB>'. The reason for putting 'refs/heads/' directly into COMPREPLY instead of using __gitcomp() is to avoid __gitcomp() adding a trailing space. Signed-off-by: SZEDER Gábor <szeder@ira.uka.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rwxr-xr-xcontrib/completion/git-completion.bash4
1 files changed, 4 insertions, 0 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index f992b1399d..c76b645bed 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1891,6 +1891,10 @@ _git_config ()
remote.*.fetch)
local remote="${prev#remote.}"
remote="${remote%.fetch}"
+ if [ -z "$cur" ]; then
+ COMPREPLY=("refs/heads/")
+ return
+ fi
__gitcomp_nl "$(__git_refs_remotes "$remote")"
return
;;