git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 (amend)] gitweb: Do not show 'patch' link for merge commits

From
Jakub Narebski <jnareb@gmail.com>
Date
Oct 9, 2009, 12:26 UTC
Message-ID
<200910091426.44976.jnareb@gmail.com>
In-Reply-To
<200910091423.51286.jnareb@gmail.com>

The 'patch' view is about generating text/plain patch that can be given to "git am", and "git am" doesn't understand merges anyway. Therefore link to 'patch' view should not be shown for merge commits.

Also call to git-format-patch inside the 'patch' action would fail when 'patch' action is called for a merge commit, with "Reading git-format-patch failed" text as 'patch' view body.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
Changes since v1:
 * Do not show 'patch' link for merge commits not only in 'commit'
   view, but also in 'commitdiff' view (more complete)
 * 'patch' link is shown also for root (parentless) commits; it
   works correctly thanks to passing '--root' option to git-format-patch
   (remove unnecessary restriction)
 * better commit message thanks to discussion with Jeff King
 gitweb/gitweb.perl |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 24b2193..14f31dc 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -5328,7 +5328,7 @@ sub git_commit {
 			} @$parents ) .
 			')';
 	}
-	if (gitweb_check_feature('patches')) {
+	if (gitweb_check_feature('patches') && @$parents <= 1) {
 		$formats_nav .= " | " .
 			$cgi->a({-href => href(action=>"patch", -replay=>1)},
 				"patch");
@@ -5616,7 +5616,7 @@ sub git_commitdiff {
 		$formats_nav =
 			$cgi->a({-href => href(action=>"commitdiff_plain", -replay=>1)},
 			        "raw");
-		if ($patch_max) {
+		if ($patch_max && @{$co{'parents'}} <= 1) {
 			$formats_nav .= " | " .
 				$cgi->a({-href => href(action=>"patch", -replay=>1)},
 					"patch");
@@ -5824,7 +5824,7 @@ sub git_commitdiff_plain {
 
 # format-patch-style patches
 sub git_patch {
-	git_commitdiff(-format => 'patch', -single=> 1);
+	git_commitdiff(-format => 'patch', -single => 1);
 }
 
 sub git_patches {
-- 
1.6.4.2
Previous: Jakub NarebskiNext: Jeff King
Message 8 of 10 in “gitweb: Do not show 'patch' link in 'commit' view for merges”
  1. gitweb: Do not show 'patch' link in 'commit' view for mergesJakub Narebski, Sep 30, 2009
  2. Jeff KingOct 1, 2009
  3. Jakub NarebskiOct 1, 2009
  4. Jeff KingOct 1, 2009
  5. Jakub NarebskiOct 1, 2009
  6. gitweb: Do not show 'patch' link for merge commitsJakub Narebski, Oct 9, 2009
  7. Jakub NarebskiOct 9, 2009
  8. gitweb: Do not show 'patch' link for merge commitsJakub Narebski, Oct 9, 2009
  9. Jeff KingOct 9, 2009
  10. Junio C HamanoOct 10, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.