Re: should git rev-parse -q --verify on a range produce output?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 8 Jan 2023 at 03:34, Junio C Hamano <gitster@xxxxxxxxx> wrote:
>
> demerphq <demerphq@xxxxxxxxx> writes:
>
> > I was curious if it is a bug that `rev-parse -q --verify` produces
> > output for a commit range, and only reveals it is supposed to be used
> > with a single commit as an error message?
>
> I know that the original scenario that the combination of "--verify"
> and "--quiet" was invented for was "I have a string that ought to
> resolve to a single object name, but the object may be missing", and
>
>         if git cat-file -e "$name" 2>/dev/null
>         then
>                 rawname=$(git rev-parse --verify "$name")
>                 true
>         else
>                 false
>         fi &&
>         ... do something that uses $rawname here ...
>
> is a mouthful.  It becomes easier to use if we can say
>
>         rawname=$(git rev-parse -q --verify "$name") &&
>         ... do something that uses $rawname here ...
>
> I do not think the behaviour in usecase outside that was carefully
> designed to the details.

Is this something you think should be fixed? I would give it a go if
there was some direction on what it should do in this case. Just error
early and produce no output?

BTW, the weird behavior of it is documented here:
https://github.com/Perl/perl5/pull/20657

We have some tooling which we use to generate lists of contributors
for each release from the git commits, and we test this code each
build on specific known commit ranges. We noticed this because some of
our tests run in shallow clones and we were using rev-parse to disable
the test if the clone didnt have the right commit range. But it was
failing sometimes when it didnt have the complete range and we were
"doing it wrong" by not checking the error code and just checking to
see if it output anything.

cheers,
Yves

-- 
perl -Mre=debug -e "/just|another|perl|hacker/"



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux