Subject: Re: [BUG] `git describe` doesn't traverse the graph in topological order

From: 'Ben Boeckel' <[email-masked]>
Date: Fri, 22 Sep 2023 14:41:24 -0400

On Fri, Sep 22, 2023 at 10:51:59 -0700, Junio C Hamano wrote:
> <[email-masked]> writes:
> 
> > There appears to be a merge at 446120fd88 which brings v9.3.0.rc0 closer to HEAD than v9.3.0.rc1.
> 
> I didn't look at the actual graph but let me say I trust you ;-)
> 
> I wonder if there should be an obvious "explain why you gave this
> name" mode added to the command, though.  The command should be able
> to say "The closest path from HEAD to any tag is via this, that, and
> that commit, which is N hops to tag T0", and from there, the user
> should be able to say "Oh, I thought T1 was closer, let me try again
> to describe HEAD, limiting the candidate only to T1" and run the
> command in that mode, which should be able to say "The closest path
> from HEAD to any tag that is allowed as a candidate is via these
> commits, which is M hops to tag T1".  And if M is smaller than N,
> then that may deserve to trigger a bug report (but as you said,
> there are rules like preferring annotated over unannotated tags
> involved, so it may not as straight-forward as comparing the two
> integer hop counts).

The thing is that the count is what is wrong here, so the determination
of what is "closer" is wrong. Any explanation would say things like
"commit X~10 is not part of X".

--Ben