about summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xtests/t0105-commit.sh15
-rw-r--r--ui-commit.c10
2 files changed, 22 insertions, 3 deletions
diff --git a/tests/t0105-commit.sh b/tests/t0105-commit.sh
index aa2bf33..4e1236b 100755
--- a/tests/t0105-commit.sh
+++ b/tests/t0105-commit.sh
@@ -19,4 +19,19 @@ run_test 'find diff summary' '
 	 grep -e "1 files changed, 1 insertions, 0 deletions" trash/tmp
 '
 
+run_test 'get root commit' '
+	 root=$(cd trash/repos/foo && git rev-list --reverse HEAD | head -1) &&
+	 cgit_url "foo/commit&id=$root" >trash/tmp &&
+	 grep "</html>" trash/tmp
+'
+
+run_test 'root commit contains diffstat' '
+	 grep "<a href=./foo/diff/file-1.>file-1</a>" trash/tmp
+'
+
+run_test 'root commit contains diff' '
+	 grep ">diff --git a/file-1 b/file-1<" trash/tmp &&
+	 grep -e "<div class=.add.>+1</div>" trash/tmp
+'
+
 tests_done
diff --git a/ui-commit.c b/ui-commit.c
index 1aa5d34..4bbb391 100644
--- a/ui-commit.c
+++ b/ui-commit.c
@@ -18,6 +18,7 @@ void cgit_print_commit(char *hex)
 	struct commit_list *p;
 	unsigned char sha1[20];
 	char *tmp;
+	int parents = 0;
 
 	if (!hex)
 		hex = ctx.qry.head;
@@ -75,6 +76,7 @@ void cgit_print_commit(char *hex)
 		cgit_diff_link("diff", NULL, NULL, ctx.qry.head, hex,
 			       sha1_to_hex(p->item->object.sha1), NULL);
 		html(")</td></tr>");
+		parents++;
 	}
 	if (ctx.repo->snapshots) {
 		html("<tr><th>download</th><td colspan='2' class='sha1'>");
@@ -89,9 +91,11 @@ void cgit_print_commit(char *hex)
 	html("<div class='commit-msg'>");
 	html_txt(info->msg);
 	html("</div>");
-	if (!(commit->parents && commit->parents->next &&
-	      commit->parents->next->next)) {
-		tmp = sha1_to_hex(commit->parents->item->object.sha1);
+	if (parents < 3) {
+		if (parents)
+			tmp = sha1_to_hex(commit->parents->item->object.sha1);
+		else
+			tmp = NULL;
 		cgit_print_diff(ctx.qry.sha1, tmp, NULL);
 	}
 	cgit_free_commitinfo(info);
roe 2021-02-01Drop pledge privileges after daemonization 1.2June McEnroe 2021-02-01Remove use of "%n"June McEnroe https://cvsweb.openbsd.org/src/lib/libc/stdio/vfprintf.c?rev=1.79&content-type=text/x-cvsweb-markup I think this is silly, as I've said elsewhere, and it's a shame because that was clearly the best way to write this. Oh well. 2021-02-01Check signals first in the loopJune McEnroe Signals need to be checked first in the loop to catch any that were delivered between setting up the signals handlers and entering the loop, i.e. in the time it takes to initially start each of the services. 2020-12-15Log a message when stopping a service waiting to restart 1.1June McEnroe It's a little annoying to have to special-case this, but otherwise there is no confirmation in the log that the restart won't still happen. 2020-11-10Refactor unveil calls so errors can be reported properlyJune McEnroe 2020-10-27Do not increment signalsJune McEnroe No need to do a read and a write... and it's declared volatile so maybe that's even worse? I don't even know, but there's no point. 2020-10-23Only look up group if one is namedJune McEnroe 2020-10-23Remove default defines of RUNDIR, ETCDIRJune McEnroe 2020-10-23Set shell scripts executable in buildJune McEnroe 2020-10-20Humanize milliseconds if interval is less than 1sJune McEnroe The intervals are configurable in milliseconds so humanize should be able to display at that precision. 2020-10-20Humanize restart intervalJune McEnroe 2020-08-17Document default catsit.conf location on OpenBSD 1.0June McEnroe 2020-08-17Template catsit script with RUNDIRJune McEnroe 2020-08-17Clean up includesJune McEnroe 2020-08-17Log service uptime in statusJune McEnroe