From fa6c1caffa0d16bf92dda4e56eafc98fce058228 Mon Sep 17 00:00:00 2001 From: Bryce Kwon Date: Thu, 29 Oct 2026 13:45:06 -1000 Subject: Offer no diff options on an octopus merge The commit page draws no diff for a merge of three or more parents, so the options above it changed nothing. --- source/ui-commit.c | 4 +++- tests/t0106-commit.sh | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/source/ui-commit.c b/source/ui-commit.c index 846dd5d..63f2b7e 100644 --- a/source/ui-commit.c +++ b/source/ui-commit.c @@ -270,7 +270,9 @@ void cgit_print_commit(char *hex, const char *prefix) ctx.page.title = cgit_fmtalloc("%s - %s", info->subject, ctx.page.title); cgit_print_layout_start(); - cgit_print_diff_ctrls(); + // An octopus merge draws no diff, so it has no options to offer. + if (commit_list_count(commit->parents) < OCTOPUS_PARENTS) + cgit_print_diff_ctrls(); html("\n"); print_ident_row("author", info->author, info->author_email, info->author_date, info->author_tz); diff --git a/tests/t0106-commit.sh b/tests/t0106-commit.sh index 7de0a76..5564038 100755 --- a/tests/t0106-commit.sh +++ b/tests/t0106-commit.sh @@ -72,4 +72,16 @@ test_expect_success 'a message that is not UTF-8 has its stray bytes replaced' ' ! grep "caf$(printf "\351")" tmp ' +test_expect_success 'an octopus merge, which draws no diff, offers no diff options' ' + ( + cd repos/foo && + cid=$(git commit-tree -p HEAD -p HEAD~1 -p HEAD~2 -m octopus HEAD^{tree}) && + git update-ref refs/heads/octopus "$cid" + ) && + cgit_query "url=foo/commit&h=octopus" >tmp && + ! grep "cgit-panel" tmp && + cgit_query "url=foo/commit" >tmp && + grep "cgit-panel" tmp +' + test_done -- cgit