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

Re: [PATCH] doc: enhance git describe --tags help

From
Shawn O. Pearce <spearce@spearce.org>
Date
Sep 30, 2008, 19:04 UTC
Message-ID
<20080930190449.GG21310@spearce.org>
In-Reply-To
<20080930095641.GA9001@strlen.de>
Uwe Kleine-KKKnig <ukleinek@strlen.de> wrote:
Show 14 quoted lines
> On Mon, Sep 29, 2008 at 08:01:27AM -0700, Shawn O. Pearce wrote:
> > --tags::
> > 	If a lightweight tag exactly matches, output it.  If no
> > 	annotated tag is found in the ancestry but a lightweight
> > 	tag is found, output the lightweight tag.
>
> IMHO --tags should behave as Erez expected (because it's what I
> expected, too).  As --tags currently behaves it's only usable in very
> rare cases (most of the time it only makes a difference on repos without
> any annotated tag).
> 
> When do you pass --tags?  Only if a lightweight tag is OK for an answer.
> And then I would prefer a "near" lightweight tag to a "farer" annotated
> one.

I don't disagree. I've been tempted to write a patch to change the behavior of git-describe so that --tags and --all control what names are inserted into the candidate list, but don't control the ordering of their selection.

I think this is all that is needed to make the behavior do what you and Erez expected. But its a pretty big change in the results if you are passing in --all or --tags today.

--8<-- [WIP] Change meaning of --tags and --all

---
 builtin-describe.c |    6 ++----
 1 files changed, 2 insertions(+), 4 deletions(-)
diff --git a/builtin-describe.c b/builtin-describe.c
index ec404c8..fd54fec 100644
--- a/builtin-describe.c
+++ b/builtin-describe.c
@@ -15,8 +15,8 @@ static const char * const describe_usage[] = {
 };
 
 static int debug;	/* Display lots of verbose info */
-static int all;	/* Default to annotated tags only */
-static int tags;	/* But allow any tags if --tags is specified */
+static int all;	/* Any valid ref can be used */
+static int tags;	/* Either lightweight or annotated tags */
 static int longformat;
 static int abbrev = DEFAULT_ABBREV;
 static int max_candidates = 10;
@@ -112,8 +112,6 @@ static int compare_pt(const void *a_, const void *b_)
 {
 	struct possible_tag *a = (struct possible_tag *)a_;
 	struct possible_tag *b = (struct possible_tag *)b_;
-	if (a->name->prio != b->name->prio)
-		return b->name->prio - a->name->prio;
 	if (a->depth != b->depth)
 		return a->depth - b->depth;
 	if (a->found_order != b->found_order)
-- 
1.6.0.2.513.g6dbd


-- 
Shawn.
Previous: Andreas EricssonNext: Uwe Kleine-König
Message 21 of 26 in “git-describe doesn't show the most recent tag”
  1. Erez ZilberSep 28, 2008
  2. Pierre HabouzitSep 28, 2008
  3. Erez ZilberSep 28, 2008
  4. Pierre HabouzitSep 28, 2008
  5. Pierre HabouzitSep 28, 2008
  6. doc: enhance git describe --tags helpPierre Habouzit, Sep 28, 2008
  7. Shawn O. PearceSep 29, 2008
  8. Pierre HabouzitSep 30, 2008
  9. describe: Make --tags and --all match lightweight tags more oftenShawn O. Pearce, Oct 10, 2008
  10. Pierre HabouzitOct 10, 2008
  11. Junio C HamanoOct 10, 2008
  12. Shawn O. PearceOct 13, 2008
  13. describe: Make --tags and --all match lightweight tags more oftenShawn O. Pearce, Oct 13, 2008
  14. Santi BéjarOct 15, 2008
  15. Andreas EricssonOct 11, 2008
  16. Shawn O. PearceOct 12, 2008
  17. Andreas EricssonOct 12, 2008
  18. Uwe Kleine-KönigOct 12, 2008
  19. Uwe Kleine-KönigSep 30, 2008
  20. Andreas EricssonSep 30, 2008
  21. Shawn O. PearceSep 30, 2008
  22. Uwe Kleine-KönigSep 30, 2008
  23. Shawn O. PearceSep 30, 2008
  24. Uwe Kleine-KönigOct 15, 2008
  25. Erez ZilberSep 28, 2008
  26. Andreas EricssonSep 28, 2008

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.