about summary refs log tree commit diff stats
path: root/ui-refs.c
diff options
context:
space:
mode:
authorStefan Bühler2009-08-16 19:35:18 +0200
committerLars Hjemli2009-08-16 20:53:20 +0200
commit1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25 (patch)
tree2f5eff9d46e490de0c6baddbd3c232935f47f534 /ui-refs.c
parentUse GIT-1.6.3.4 (diff)
downloadcgit-1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25.tar.gz
cgit-1bbe04c2c09d5dfbb2c66c4f8f490008b6e5fb25.zip
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>
Diffstat (limited to 'ui-refs.c')
-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)
46{ 46{
47 struct refinfo *r1 = *(struct refinfo **)a; 47 struct refinfo *r1 = *(struct refinfo **)a;
48 struct refinfo *r2 = *(struct refinfo **)b; 48 struct refinfo *r2 = *(struct refinfo **)b;
49 int r1date, r2date;
49 50
50 return cmp_age(r1->tag->tagger_date, r2->tag->tagger_date); 51 if (r1->object->type != OBJ_COMMIT)
52 r1date = r1->tag->tagger_date;
53 else
54 r1date = r1->commit->committer_date;
55
56 if (r2->object->type != OBJ_COMMIT)
57 r2date = r2->tag->tagger_date;
58 else
59 r2date = r2->commit->committer_date;
60
61 return cmp_age(r1date, r2date);
51} 62}
52 63
53static int print_branch(struct refinfo *ref) 64static int print_branch(struct refinfo *ref)
@@ -145,6 +156,12 @@ static int print_tag(struct refinfo *ref)
145 print_tag_downloads(ctx.repo, name); 156 print_tag_downloads(ctx.repo, name);
146 else 157 else
147 cgit_object_link(ref->object); 158 cgit_object_link(ref->object);
159 html("</td><td>");
160 if (ref->object->type == OBJ_COMMIT)
161 html(ref->commit->author);
162 html("</td><td colspan='2'>");
163 if (ref->object->type == OBJ_COMMIT)
164 cgit_print_age(ref->commit->commit->date, -1, NULL);
148 html("</td></tr>\n"); 165 html("</td></tr>\n");
149 } 166 }
150 return 0; 167 return 0;