1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-06-09 21:06:11 +02:00

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:
SZEDER Gábor 2017-02-03 03:48:19 +01:00 committed by Junio C Hamano
parent 69a775963b
commit 62a1b73216
2 changed files with 7 additions and 3 deletions

View File

@ -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"

View File

@ -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 &&