diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-11-29 13:27:53 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-11-29 13:27:53 -0800 |
commit | fa308cd8487f9619f9002ab4775e463b35fad722 (patch) | |
tree | 72262b8cc48cef604e1df743aee2e0b43e83cdf6 /contrib | |
parent | bab32da38527270d4b5c60e37a2bdfba54774738 (diff) | |
parent | 49416ad22aa917178f306859a5bab60311166a9f (diff) | |
download | git-fa308cd8487f9619f9002ab4775e463b35fad722.tar.gz git-fa308cd8487f9619f9002ab4775e463b35fad722.tar.xz |
Merge branch 'cp/completion-negative-refs' into maint
The command-line completion script (in contrib/) learned to
complete "git cmd ^mas<HT>" to complete the negative end of
reference to "git cmd ^master".
* cp/completion-negative-refs:
completion: support excluding refs
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/completion/git-completion.bash | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index 9c8f7380d..21016bf8d 100644 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -338,7 +338,7 @@ __git_tags () __git_refs () { local i hash dir="$(__gitdir "${1-}")" track="${2-}" - local format refs + local format refs pfx if [ -d "$dir" ]; then case "$cur" in refs|refs/*) @@ -347,14 +347,15 @@ __git_refs () track="" ;; *) + [[ "$cur" == ^* ]] && pfx="^" for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do - if [ -e "$dir/$i" ]; then echo $i; fi + if [ -e "$dir/$i" ]; then echo $pfx$i; fi done format="refname:short" refs="refs/tags refs/heads refs/remotes" ;; esac - git --git-dir="$dir" for-each-ref --format="%($format)" \ + git --git-dir="$dir" for-each-ref --format="$pfx%($format)" \ $refs if [ -n "$track" ]; then # employ the heuristic used by git checkout |