aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOndrej Jirman <ondrej.jirman@zonio.net>2007-05-26 03:33:41 +0200
committerLars Hjemli <hjemli@gmail.com>2007-05-31 10:25:48 +0200
commit51a960a3ca6b0cade97db287a342996c3e1de48d (patch)
treed3360cd301c9e13d7aa9492e6628bf8d71736608
parentCheck for NULL commit buffer in cgit_parse_commit() (diff)
downloadcgit-51a960a3ca6b0cade97db287a342996c3e1de48d.tar.xz
cgit-51a960a3ca6b0cade97db287a342996c3e1de48d.zip
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 <hjemli@gmail.com>
-rw-r--r--cgit.h1
-rw-r--r--cgitrc5
-rw-r--r--shared.c3
-rw-r--r--ui-summary.c8
4 files changed, 16 insertions, 1 deletions
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("<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'>&nbsp;</td></tr>");
cgit_print_branches();
html("<tr class='nohover'><td colspan='4'>&nbsp;</td></tr>");
cgit_print_tags();