completion: treat dangling symrefs as existing pseudorefs
commit020e0a087f2101182343936b8d58f0b4c96e96df
authorPatrick Steinhardt <ps@pks.im>
Mon, 15 Jan 2024 10:36:15 +0000 (15 11:36 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 16 Jan 2024 17:18:21 +0000 (16 09:18 -0800)
tree25fd729d23ed2ea6ad0b8cdfb4f58ec1ac13d914
parent9a9c31135e6029dbda773f7271cea4648644eb8e
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>
contrib/completion/git-completion.bash
t/t9902-completion.sh