mirror of
https://git.zx2c4.com/cgit
synced 2024-11-30 04:16:20 +00:00
Use reflist to print branch info
This updates ui-summary.c to use a reflist instead of for_each_branch_ref(), as a step towards more flexible branch handling (filtering/sorting). Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
parent
e397ff7024
commit
0c1ebce204
30
ui-summary.c
30
ui-summary.c
@ -10,41 +10,35 @@
|
|||||||
|
|
||||||
static int header;
|
static int header;
|
||||||
|
|
||||||
static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
|
static void cgit_print_branch(struct refinfo *ref)
|
||||||
int flags, void *cb_data)
|
|
||||||
{
|
{
|
||||||
struct commit *commit;
|
struct commit *commit;
|
||||||
struct commitinfo *info;
|
struct commitinfo *info;
|
||||||
char buf[256];
|
char *name = (char *)ref->refname;
|
||||||
char *ref;
|
|
||||||
|
|
||||||
ref = xstrdup(refname);
|
commit = lookup_commit(ref->object->sha1);
|
||||||
strncpy(buf, refname, sizeof(buf));
|
|
||||||
commit = lookup_commit(sha1);
|
|
||||||
// object is not really parsed at this point, because of some fallout
|
// object is not really parsed at this point, because of some fallout
|
||||||
// from previous calls to git functions in cgit_print_log()
|
// from previous calls to git functions in cgit_print_log()
|
||||||
commit->object.parsed = 0;
|
commit->object.parsed = 0;
|
||||||
if (commit && !parse_commit(commit)){
|
if (commit && !parse_commit(commit)){
|
||||||
info = cgit_parse_commit(commit);
|
info = cgit_parse_commit(commit);
|
||||||
html("<tr><td>");
|
html("<tr><td>");
|
||||||
cgit_log_link(ref, NULL, NULL, ref, NULL, NULL, 0);
|
cgit_log_link(name, NULL, NULL, name, NULL, NULL, 0);
|
||||||
html("</td><td>");
|
html("</td><td>");
|
||||||
cgit_print_age(commit->date, -1, NULL);
|
cgit_print_age(commit->date, -1, NULL);
|
||||||
html("</td><td>");
|
html("</td><td>");
|
||||||
html_txt(info->author);
|
html_txt(info->author);
|
||||||
html("</td><td>");
|
html("</td><td>");
|
||||||
cgit_commit_link(info->subject, NULL, NULL, ref, NULL);
|
cgit_commit_link(info->subject, NULL, NULL, name, NULL);
|
||||||
html("</td></tr>\n");
|
html("</td></tr>\n");
|
||||||
cgit_free_commitinfo(info);
|
cgit_free_commitinfo(info);
|
||||||
} else {
|
} else {
|
||||||
html("<tr><td>");
|
html("<tr><td>");
|
||||||
html_txt(buf);
|
html_txt(name);
|
||||||
html("</td><td colspan='3'>");
|
html("</td><td colspan='3'>");
|
||||||
htmlf("*** bad ref %s ***", sha1_to_hex(sha1));
|
htmlf("*** bad ref %s ***", sha1_to_hex(ref->object->sha1));
|
||||||
html("</td></tr>\n");
|
html("</td></tr>\n");
|
||||||
}
|
}
|
||||||
free(ref);
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void print_tag_header()
|
static void print_tag_header()
|
||||||
@ -144,11 +138,19 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
|
|||||||
|
|
||||||
static void cgit_print_branches()
|
static void cgit_print_branches()
|
||||||
{
|
{
|
||||||
|
struct reflist list;
|
||||||
|
int i;
|
||||||
|
|
||||||
html("<tr class='nohover'><th class='left'>Branch</th>"
|
html("<tr class='nohover'><th class='left'>Branch</th>"
|
||||||
"<th class='left'>Idle</th>"
|
"<th class='left'>Idle</th>"
|
||||||
"<th class='left'>Author</th>"
|
"<th class='left'>Author</th>"
|
||||||
"<th class='left'>Head commit</th></tr>\n");
|
"<th class='left'>Head commit</th></tr>\n");
|
||||||
for_each_branch_ref(cgit_print_branch_cb, NULL);
|
|
||||||
|
list.refs = NULL;
|
||||||
|
list.alloc = list.count = 0;
|
||||||
|
for_each_branch_ref(cgit_refs_cb, &list);
|
||||||
|
for(i=0; i<list.count; i++)
|
||||||
|
cgit_print_branch(list.refs[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cgit_print_tags()
|
static void cgit_print_tags()
|
||||||
|
Loading…
Reference in New Issue
Block a user