summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Bühler <lighttpd@stbuehler.de>2009-08-16 19:35:18 +0200
committerLars Hjemli <hjemli@gmail.com>2009-08-16 20:53:20 +0200
commit1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25 (patch)
tree2f5eff9d46e490de0c6baddbd3c232935f47f534
parentff0ff807a3e03ade0fe04557e33593a3b32d9ab9 (diff)
downloadcgit-1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25.tar.gz
cgit-1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25.tar.bz2
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>
-rw-r--r--ui-refs.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/ui-refs.c b/ui-refs.c
index 25da00a..d3b4f6e 100644
--- 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;