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

[RFC PATCH] describe: Make --tags and --all match lightweight tags more often

From
Shawn O. Pearce <spearce@spearce.org>
Date
Oct 10, 2008, 16:59 UTC
Message-ID
<20081010165952.GI8203@spearce.org>
In-Reply-To
<20080930083940.GA11453@artemis.corp>

If the caller supplies --tags they want the lightweight, unannotated tags to be searched for a match. If a lightweight tag is closer in the history, it should be matched, even if an annotated tag is reachable further back in the commit chain.

The same applies with --all when matching any other type of ref.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
---
 This come out of the discussions earlier last week, where folks
 were confused about the meaning of --tags and wanted to see it
 behave as they expected, which was to match the nearest tag,
 no matter its "type".
 The code is unchanged from what I sent out before, but now it has
 updated test vectors and a commit message.
 Thoughts?
 builtin-describe.c  |    6 ++----
 t/t6120-describe.sh |    8 ++++----
 2 files changed, 6 insertions(+), 8 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)
diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh
index 16cc635..e6c9e59 100755
--- a/t/t6120-describe.sh
+++ b/t/t6120-describe.sh
@@ -91,10 +91,10 @@ check_describe D-* HEAD^^
 check_describe A-* HEAD^^2
 check_describe B HEAD^^2^
 
-check_describe A-* --tags HEAD
-check_describe A-* --tags HEAD^
-check_describe D-* --tags HEAD^^
-check_describe A-* --tags HEAD^^2
+check_describe c-* --tags HEAD
+check_describe c-* --tags HEAD^
+check_describe e-* --tags HEAD^^
+check_describe c-* --tags HEAD^^2
 check_describe B --tags HEAD^^2^
 
 check_describe B-0-* --long HEAD^^2^
-- 
1.6.0.2.687.g8544f

-- 
Shawn.
Previous: Pierre HabouzitNext: Pierre Habouzit
Message 9 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.