From 51a960a3ca6b0cade97db287a342996c3e1de48d Mon Sep 17 00:00:00 2001 From: Ondrej Jirman Date: Sat, 26 May 2007 03:33:41 +0200 Subject: 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 diff --git a/cgit.h b/cgit.h index d6bcde2..2f3fca1 100644 --- a/cgit.h +++ b/cgit.h @@ -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; diff --git a/cgitrc b/cgitrc index 054a708..0f602e4 100644 --- a/cgitrc +++ b/cgitrc @@ -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 diff --git a/shared.c b/shared.c index e3123a8..b6d2fa1 100644 --- a/shared.c +++ b/shared.c @@ -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 15e8aec..4bda4c2 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(""); @@ -203,8 +206,11 @@ void cgit_print_summary() if (cgit_repo->readme) html_include(cgit_repo->readme); html(""); - + if (cgit_summary_log > 0) + cgit_print_log(cgit_query_head, 0, cgit_summary_log, NULL, NULL, 0); html(""); + if (cgit_summary_log > 0) + html(""); cgit_print_branches(); html(""); cgit_print_tags(); -- cgit v0.10.1