The only difference between patch and patches view is in the treatement of single commits: the former only displays a single patch, whereas the latter displays a patchset leading to the specified commit. --- gitweb/gitweb.perl | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 71d5af4..dfc7128 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -525,6 +525,7 @@ our %actions = ( "history" => \&git_history, "log" => \&git_log, "patch" => \&git_patch, + "patches" => \&git_patches, "rss" => \&git_rss, "atom" => \&git_atom, "search" => \&git_search, @@ -5408,6 +5409,9 @@ sub git_blobdiff_plain { sub git_commitdiff { my $format = shift || 'html'; + # for patch view: should we limit ourselves to a single patch + # if only a single commit is passed? + my $single_patch = shift && 1; my $patch_max; if ($format eq 'patch') { @@ -5524,7 +5528,15 @@ sub git_commitdiff { } push @commit_spec, '-n', "$hash_parent..$hash"; } else { - push @commit_spec, '-1', '--root', $hash; + if ($single_patch) { + push @commit_spec, '-1'; + } else { + if ($patch_max > 0) { + push @commit_spec, "-$patch_max"; + } + push @commit_spec, "-n"; + } + push @commit_spec, '--root', $hash; } open $fd, "-|", git_cmd(), "format-patch", '--encoding=utf8', '--stdout', @commit_spec @@ -5620,7 +5632,11 @@ sub git_commitdiff_plain { # format-patch-style patches sub git_patch { - git_commitdiff('patch'); + git_commitdiff('patch', 1); +} + +sub git_patches { + git_commitdiff('patch', 0); } sub git_history { -- 1.5.6.5 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html