the repository which powers this website
Implemented configurable HEAD shortlog on summary page.
This mirrors similiar functionality in gitweb. After clicking on
project on projectlist you will immediatelly see quick summary
of last N commits on HEAD.
[lh: changed from HEAD to cgit_query_head]
Signed-off-by: Lars Hjemli <[email protected]>
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc | 5 | ||||
| -rw-r--r-- | shared.c | 3 | ||||
| -rw-r--r-- | ui-summary.c | 8 |
4 files changed, 16 insertions, 1 deletions
@@ -127,6 +127,7 @@ extern int cgit_cache_repo_ttl; extern int cgit_cache_dynamic_ttl; extern int cgit_cache_static_ttl; extern int cgit_cache_max_create_time; +extern int cgit_summary_log; extern int cgit_max_msg_len; extern int cgit_max_repodesc_len; @@ -20,6 +20,11 @@ #enable-log-linecount=0 +## Enable/disable display of HEAD shortlog in summary view. Set it to maximum +## number of commits that should be displayed +#summary-log=0 + + ## Specify a root for virtual urls. This makes cgit generate urls like ## ## http://localhost/git/repo/log/?id=master @@ -34,6 +34,7 @@ int cgit_cache_repo_ttl = 5; int cgit_cache_dynamic_ttl = 5; int cgit_cache_static_ttl = -1; int cgit_cache_max_create_time = 5; +int cgit_summary_log = 0; int cgit_max_msg_len = 60; int cgit_max_repodesc_len = 60; @@ -164,6 +165,8 @@ void cgit_global_config_cb(const char *name, const char *value) cgit_max_repodesc_len = atoi(value); else if (!strcmp(name, "max-commit-count")) cgit_max_commit_count = atoi(value); + else if (!strcmp(name, "summary-log")) + cgit_summary_log = atoi(value); else if (!strcmp(name, "agefile")) cgit_agefile = xstrdup(value); else if (!strcmp(name, "repo.group")) diff --git a/ui-summary.c b/ui-summary.c index 15e8aec9..4bda4c2f 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -19,6 +19,9 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, strncpy(buf, refname, sizeof(buf)); commit = lookup_commit(sha1); + // object is not really parsed at this point, because of some fallout + // from previous calls to git functions in cgit_print_log() + commit->object.parsed = 0; if (commit && !parse_commit(commit)){ info = cgit_parse_commit(commit); html("<tr><td>"); @@ -203,8 +206,11 @@ void cgit_print_summary() if (cgit_repo->readme) html_include(cgit_repo->readme); html("</div>"); - + if (cgit_summary_log > 0) + cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, 0); html("<table class='list nowrap'>"); + if (cgit_summary_log > 0) + html("<tr class='nohover'><td colspan='4'> </td></tr>"); cgit_print_branches(); html("<tr class='nohover'><td colspan='4'> </td></tr>"); cgit_print_tags(); |