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>
此提交包含在:
19
ui-refs.c
19
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 *r1 = *(struct refinfo **)a;
|
||||||
struct refinfo *r2 = *(struct refinfo **)b;
|
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)
|
static int print_branch(struct refinfo *ref)
|
||||||
@ -145,6 +156,12 @@ static int print_tag(struct refinfo *ref)
|
|||||||
print_tag_downloads(ctx.repo, name);
|
print_tag_downloads(ctx.repo, name);
|
||||||
else
|
else
|
||||||
cgit_object_link(ref->object);
|
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");
|
html("</td></tr>\n");
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
新增問題並參考
封鎖使用者