about summary refs log tree commit diff
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-pink-51a960a3ca6b0cade97db287a342996c3e1de48d.tar.gz
cgit-pink-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();