completion: support excluding full refs
Commit 49416ad22
(completion: support excluding refs, 2016-08-24) made
possible to complete short refs with a '^' prefix.
Extend the support to full refs to make completing '^refs/...' work.
Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
aa0644f74f
commit
aed3881359
@ -387,6 +387,10 @@ __git_refs ()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$list_refs_from" = path ]; then
|
if [ "$list_refs_from" = path ]; then
|
||||||
|
if [[ "$cur_" == ^* ]]; then
|
||||||
|
pfx="^"
|
||||||
|
cur_=${cur_#^}
|
||||||
|
fi
|
||||||
case "$cur_" in
|
case "$cur_" in
|
||||||
refs|refs/*)
|
refs|refs/*)
|
||||||
format="refname"
|
format="refname"
|
||||||
@ -394,10 +398,6 @@ __git_refs ()
|
|||||||
track=""
|
track=""
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
if [[ "$cur_" == ^* ]]; then
|
|
||||||
pfx="^"
|
|
||||||
cur_=${cur_#^}
|
|
||||||
fi
|
|
||||||
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 $pfx$i; fi
|
if [ -e "$dir/$i" ]; then echo $pfx$i; fi
|
||||||
done
|
done
|
||||||
|
@ -806,6 +806,37 @@ test_expect_success '__git_refs - after --opt= - full refs' '
|
|||||||
test_cmp expected "$actual"
|
test_cmp expected "$actual"
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success '__git refs - exluding refs' '
|
||||||
|
cat >expected <<-EOF &&
|
||||||
|
^HEAD
|
||||||
|
^master
|
||||||
|
^matching-branch
|
||||||
|
^other/branch-in-other
|
||||||
|
^other/master-in-other
|
||||||
|
^matching-tag
|
||||||
|
EOF
|
||||||
|
(
|
||||||
|
cur=^ &&
|
||||||
|
__git_refs >"$actual"
|
||||||
|
) &&
|
||||||
|
test_cmp expected "$actual"
|
||||||
|
'
|
||||||
|
|
||||||
|
test_expect_success '__git refs - exluding full refs' '
|
||||||
|
cat >expected <<-EOF &&
|
||||||
|
^refs/heads/master
|
||||||
|
^refs/heads/matching-branch
|
||||||
|
^refs/remotes/other/branch-in-other
|
||||||
|
^refs/remotes/other/master-in-other
|
||||||
|
^refs/tags/matching-tag
|
||||||
|
EOF
|
||||||
|
(
|
||||||
|
cur=^refs/ &&
|
||||||
|
__git_refs >"$actual"
|
||||||
|
) &&
|
||||||
|
test_cmp expected "$actual"
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success '__git_complete_refs - simple' '
|
test_expect_success '__git_complete_refs - simple' '
|
||||||
sed -e "s/Z$//" >expected <<-EOF &&
|
sed -e "s/Z$//" >expected <<-EOF &&
|
||||||
HEAD Z
|
HEAD Z
|
||||||
|
Reference in New Issue
Block a user