Re: [PATCH 00/12] show-ref: introduce mode to check for ref existence
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Oct 26, 2023, 09:48 UTC
- Message-ID
- <ZTo2Aq2wAxx_6Laz@tanuki>
- In-Reply-To
- <f87c95d6-b1e5-45c7-b380-bdc8b8143ab9@gmail.com>
On Wed, Oct 25, 2023 at 03:44:33PM +0100, Phillip Wood wrote:
Show 27 quoted lines
> On 25/10/2023 15:26, Han-Wen Nienhuys wrote: > > On Tue, Oct 24, 2023 at 9:17 PM Junio C Hamano <gitster@pobox.com> wrote: > > > > > > Patrick Steinhardt <ps@pks.im> writes: > > > > > > > this patch series introduces a new `--exists` mode to git-show-ref(1) to > > > > explicitly check for the existence of a reference, only. > > > > > > I agree that show-ref would be the best place for this feature (not > > > rev-parse, which is already a kitchen sink). After all, the command > > > was designed for validating refs in 358ddb62 (Add "git show-ref" > > > builtin command, 2006-09-15). > > > > > > Thanks. Hopefully I can take a look before I go offline. > > > > The series description doesn't say why users would care about this. > > > > If this is just to ease testing, I suggest adding functionality to a > > suitable test helper. Anything you add to git-show-ref is a publicly > > visible API that needs documentation and comes with a stability > > guarantee that is more expensive to maintain than test helper > > functionality. > > Does the new functionality provide a way for scripts to see if a branch is > unborn (i.e. has not commits yet)? I don't think we have a way to > distinguish between a ref that points to a missing object and an unborn > branch at the moment.
You could do it with two commands:
```
target=$(git symbolic-ref HEAD)
git show-ref --exists "$target"
case "$?" in
2)
echo "unborn branch";;
0)
echo "branch exists";;
*)
echo "could be anything, dunno";;
esac
```While you could use git-rev-parse(1) instead of git-show-ref(1), you wouldn't be able to easily distinguish the case of a missing target reference and any other kind of error.
Patrick