]> granicus.if.org Git - cgit/commitdiff
ui-refs.c: improve handling of lightweight tags
authorStefan Bühler <lighttpd@stbuehler.de>
Sun, 16 Aug 2009 17:35:18 +0000 (19:35 +0200)
committerLars Hjemli <hjemli@gmail.com>
Sun, 16 Aug 2009 18:53:20 +0000 (20:53 +0200)
When a lightweight tag is referencing a commit object, cgit now uses
the commit date when comparing tag age. Also, the commitdate and author
info is printed in the refs view, making lightweight tags appear similar
to annotated tags.

Signed-off-by: Stefan Bühler <lighttpd@stbuehler.de>
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
ui-refs.c

index 25da00a0f25ada4218e9e518f022dc32838a5769..d3b4f6e478aab81b9f59dbac3536ce1b7eb6344e 100644 (file)
--- a/ui-refs.c
+++ b/ui-refs.c
@@ -46,8 +46,19 @@ static int cmp_tag_age(const void *a, const void *b)
 {
        struct refinfo *r1 = *(struct refinfo **)a;
        struct refinfo *r2 = *(struct refinfo **)b;
+       int r1date, r2date;
 
-       return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date);
+       if (r1->object->type != OBJ_COMMIT)
+               r1date = r1->tag->tagger_date;
+       else
+               r1date = r1->commit->committer_date;
+
+       if (r2->object->type != OBJ_COMMIT)
+               r2date = r2->tag->tagger_date;
+       else
+               r2date = r2->commit->committer_date;
+
+       return cmp_age(r1date, r2date);
 }
 
 static int print_branch(struct refinfo *ref)
@@ -145,6 +156,12 @@ static int print_tag(struct refinfo *ref)
                        print_tag_downloads(ctx.repo, name);
                else
                        cgit_object_link(ref->object);
+               html("</td><td>");
+               if (ref->object->type == OBJ_COMMIT)
+                       html(ref->commit->author);
+               html("</td><td colspan='2'>");
+               if (ref->object->type == OBJ_COMMIT)
+                       cgit_print_age(ref->commit->commit->date, -1, NULL);
                html("</td></tr>\n");
        }
        return 0;