OSDN Git Service

git-describe: use tags found in packed-refs correctly
authorJunio C Hamano <gitster@pobox.com>
Mon, 3 Mar 2008 17:24:17 +0000 (09:24 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 3 Mar 2008 17:24:17 +0000 (09:24 -0800)
When your refs are packed, "git-describe" can find the tag that is the
best match without ever parsing the tag itself.  But lookup_tag() in
display_name() says "I've never seen it", creates an empty shell, and
returns it.  We need to make sure that we actually have parsed the tag
data into it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-describe.c

index 2f1e7ba..c549d36 100644 (file)
@@ -156,7 +156,7 @@ static void display_name(struct commit_name *n)
 {
        if (n->prio == 2 && !n->tag) {
                n->tag = lookup_tag(n->sha1);
-               if (!n->tag || !n->tag->tag)
+               if (parse_tag(n->tag) || !n->tag || !n->tag->tag)
                        die("annotated tag %s not available", n->path);
                if (strcmp(n->tag->tag, n->path))
                        warning("tag '%s' is really '%s' here", n->tag->tag, n->path);