Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
completion: support excluding refs
author
Chris Packham
<judge.packham@gmail.com>
Wed, 24 Aug 2016 08:41:52 +0000
(20:41 +1200)
committer
Junio C Hamano
<gitster@pobox.com>
Wed, 24 Aug 2016 16:51:05 +0000
(09:51 -0700)
Allow completion of refs with a ^ prefix. This allows completion of
commands like 'git log HEAD ^origin/master'.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-completion.bash
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
e0c1cea
)
diff --git
a/contrib/completion/git-completion.bash
b/contrib/completion/git-completion.bash
index bd25b0a893fc1ff29716a0a6bb1f2215ff1d460c..eb8a3d4aa7e57d1d17760ecc516837fb4ed4ca92 100644
(file)
--- 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-}"
__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/*)
if [ -d "$dir" ]; then
case "$cur" in
refs|refs/*)
@@
-347,14
+347,15
@@
__git_refs ()
track=""
;;
*)
track=""
;;
*)
+ [[ "$cur" == ^* ]] && pfx="^"
for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do
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
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
$refs
if [ -n "$track" ]; then
# employ the heuristic used by git checkout