git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: describe fails on tagless branch

From
APAndy Parkins <andyparkins@gmail.com>
Date
Feb 7, 2007, 12:01 UTC
Message-ID
<200702071201.16931.andyparkins@gmail.com>
In-Reply-To
<7vy7na8f2t.fsf@assigned-by-dhcp.cox.net>
On Wednesday 2007 February 07 09:58, Junio C Hamano wrote:
Show 10 quoted lines
> > Agreed - the "nearest tag" mode (--abbrev=0) would be broken in that it
> > git-describe would return a tag that doesn't exist.
>
> "describe" is about giving a short name for public communication
> to a commit in terms of well known tags.  If there is no tag,
> then it is natural to say that the commit is indescribable.
>
> In the case of "git-describe --abbrev=0 $indescribable", it
> could return an empty string, since there is no nearest tag
> after all.  But that would not apply to non --abbrev=0 case.

Absolutely. I agree entirely. The /only/ valid thing to return when git-describe is asked "what is the nearest tag" when there is no tag is nothing. I don't see how it could be otherwise. If there were a way to return NULL instead of "" then I'd vote for that (actually we could argue that the return code tells you it's NULL); however that's moot since it's not possible to have empty tags.

git-describe returns an empty string whatever the --abbrev when there is no tag. To my mind it's working perfectly. Every case is both handled and detectable. What more could it do?

Slight aside: The only thing that has ever crossed my mind as an improvement to git-describe would be to get at its revision counting mechanism. Just for fun really as I don't think it's that useful in the real world. Wouldn't it be interesting if you could say:

 $ git-describe --revisions-per-tag HEAD
 30% v1.0.0
 20% v1.1.0
 15% v1.2.0
 13% v1.3.0
 12% v1.4.0
 4%  v1.5.0
 1%  (indescribable)
 
However, I think I'm just being silly :-)
> It might not be a bad idea to give '-q' option to make it silent
> when it fails because the commit is indescribable.

I don't think it's worth it. The "-q" be used only in scripts, and in a script you would do the whole "2> /dev/null || echo 'No tag found'" thing anyway.

Andy
-- 
Dr Andy Parkins, M Eng (hons), MIEE
andyparkins@gmail.com
Previous: Junio C HamanoNext: Jakub Narebski
Message 8 of 10 in “describe fails on tagless branch”
  1. Han-Wen NienhuysFeb 7, 2007
  2. Jakub NarebskiFeb 7, 2007
  3. Han-Wen NienhuysFeb 7, 2007
  4. Junio C HamanoFeb 7, 2007
  5. Jakub NarebskiFeb 7, 2007
  6. Andy ParkinsFeb 7, 2007
  7. Junio C HamanoFeb 7, 2007
  8. Andy ParkinsFeb 7, 2007
  9. Jakub NarebskiFeb 7, 2007
  10. Junio C HamanoFeb 7, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.