all repos — cgit @ 1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25

a hyperfast web frontend for git written in c

ui-refs.c: improve handling of lightweight tags

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>
Stefan Bühler lighttpd@stbuehler.de
Sun, 16 Aug 2009 19:35:18 +0200
commit

1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25

parent

ff0ff807a3e03ade0fe04557e33593a3b32d9ab9

1 files changed, 18 insertions(+), 1 deletions(-)

jump to
M ui-refs.cui-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 @@ if (ctx.repo->snapshots && (ref->object->type == OBJ_COMMIT))

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;