Why does git-describe warn about something that you can't control?

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Why does git-describe warn about something that you can't control?

From: demerphq <hidden>
Date: 2016-06-15 22:45:49

On the perl.git repo if I use git-describe --all on some commits I get
warnings like this:

$ git describe --all 3417e4f8422bcf13f799ce1acef44b27ccbef3d8
warning: tag 'perl-5.005_04' is really 'tags/perl-5.005_04' here
perl-5.005_04

Except there doesnt seem to be any explanation for why the warning is
being produced (it almost, but not quite looks random for the commits
im looking at), how to silence it, or how to force git-describe to for
instance use "tags/perl-5.8.0" instead so the warning is not
generated.

I think this behaviour is confusing, either the warning should go
away, or it should be improved and complemented by a switch to force
git-describe to use the qualified tagname instead, or at the very
least a switch to silence the warning (which is really annoying when
you are doing git-describe on hundreds of commits in a go).

Details for the perl repo are in my signature.

Yves
-- 
git clone git://perl5.git.perl.org/perl

Re: Why does git-describe warn about something that you can't control?

From: René Scharfe <hidden>
Date: 2016-06-15 22:45:49

demerphq schrieb:
On the perl.git repo if I use git-describe --all on some commits I get
warnings like this:

$ git describe --all 3417e4f8422bcf13f799ce1acef44b27ccbef3d8
warning: tag 'perl-5.005_04' is really 'tags/perl-5.005_04' here
perl-5.005_04

Except there doesnt seem to be any explanation for why the warning is
being produced (it almost, but not quite looks random for the commits
im looking at), how to silence it, or how to force git-describe to for
instance use "tags/perl-5.8.0" instead so the warning is not
generated.

I think this behaviour is confusing, either the warning should go
away, or it should be improved and complemented by a switch to force
git-describe to use the qualified tagname instead, or at the very
least a switch to silence the warning (which is really annoying when
you are doing git-describe on hundreds of commits in a go).
The warning was introduced by 212945d4 ("Teach git-describe to verify
annotated tag names before output") by Shawn (cc:'d).

The following patch should fix your issue by making describe ignore the
"tags/" path prefix of, well, tags, which is only present if you call
it with the option --all.
diff --git a/builtin-describe.c b/builtin-describe.c
index d2cfb1b..3a007ed 100644
--- a/builtin-describe.c
+++ b/builtin-describe.c
@@ -158,7 +158,7 @@ static void display_name(struct commit_name *n)
 		n->tag = lookup_tag(n->sha1);
 		if (!n->tag || parse_tag(n->tag) || !n->tag->tag)
 			die("annotated tag %s not available", n->path);
-		if (strcmp(n->tag->tag, n->path))
+		if (strcmp(n->tag->tag, all ? n->path + 5 : n->path))
 			warning("tag '%s' is really '%s' here", n->tag->tag, n->path);
 	}
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help