Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-01-15 13:36:15 +0300
committerJunio C Hamano <gitster@pobox.com>2024-01-16 20:18:21 +0300
commit020e0a087f2101182343936b8d58f0b4c96e96df (patch)
tree25fd729d23ed2ea6ad0b8cdfb4f58ec1ac13d914 /contrib
parent9a9c31135e6029dbda773f7271cea4648644eb8e (diff)
completion: treat dangling symrefs as existing pseudorefs
The `__git_pseudoref_exists ()` helper function back to git-rev-parse(1) in case the reftable backend is in use. This is not in the same spirit as the simple existence check that the "files" backend does though, because there we only check for the pseudo-ref to exist with `test -f`. With git-rev-parse(1) we not only check for existence, but also verify that the pseudo-ref resolves to an object, which may not be the case when the pseudo-ref points to an unborn branch. Fix this issue by using `git show-ref --exists` instead. Note that we do not have to silence stdout anymore as git-show-ref(1) will not print anything. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rw-r--r--contrib/completion/git-completion.bash2
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 54ce58f73d..6662db221d 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -148,7 +148,7 @@ __git_pseudoref_exists ()
# platforms.
if __git_eread "$__git_repo_path/HEAD" head; then
if [ "$head" == "ref: refs/heads/.invalid" ]; then
- __git rev-parse --verify --quiet "$ref" >/dev/null
+ __git show-ref --exists "$ref"
return $?
fi
fi