completion: don't list 'HEAD' when trying refs completion outside of a repo
When refs completion is attempted while not in a git repository, the completion script offers 'HEAD' erroneously. Check early in __git_refs() that there is either a repository or a remote to work on, and return early if neither is given. Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
69a775963b
commit
62a1b73216
@ -346,7 +346,11 @@ __git_refs ()
|
||||
local list_refs_from=path remote="${1-}"
|
||||
local format refs pfx
|
||||
|
||||
if [ -n "$remote" ]; then
|
||||
if [ -z "$remote" ]; then
|
||||
if [ -z "$dir" ]; then
|
||||
return
|
||||
fi
|
||||
else
|
||||
if __git_is_configured_remote "$remote"; then
|
||||
# configured remote takes precedence over a
|
||||
# local directory with the same name
|
||||
@ -360,7 +364,7 @@ __git_refs ()
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$list_refs_from" = path ] && [ -d "$dir" ]; then
|
||||
if [ "$list_refs_from" = path ]; then
|
||||
case "$cur" in
|
||||
refs|refs/*)
|
||||
format="refname"
|
||||
|
@ -599,7 +599,7 @@ test_expect_success '__git_refs - non-existing URL remote - full refs' '
|
||||
test_must_be_empty "$actual"
|
||||
'
|
||||
|
||||
test_expect_failure '__git_refs - not in a git repository' '
|
||||
test_expect_success '__git_refs - not in a git repository' '
|
||||
(
|
||||
GIT_CEILING_DIRECTORIES="$ROOT" &&
|
||||
export GIT_CEILING_DIRECTORIES &&
|
||||
|
Loading…
Reference in New Issue
Block a user