Signed-off-by: Matthias Lederhofer <matled@xxxxxxx> --- See [PATCH] gitweb: fix commitdiff for root commits from Jakub: > No checking for empty $hash_parent in git_commitdiff_plain -- we > rely on gitweb to give correct parameters for commitdiff_plain > action. I think we should always check the input and prevent any warnings. This patch is on top of Jakubs patch, mine just did the if (!($line =~ m/..)) { next; } to be consistent with the other ifs. --- gitweb/gitweb.perl | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index d9648a0..b3bfc6b 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -2200,6 +2200,13 @@ sub git_commitdiff { sub git_commitdiff_plain { mkdir($git_temp, 0700); + my %co = git_read_commit($hash); + if (!%co) { + die_error(undef, "Unknown commit object"); + } + if (!defined $hash_parent) { + $hash_parent = $co{'parent'} || '--root'; + } open my $fd, "-|", $GIT, "diff-tree", '-r', $hash_parent, $hash or die_error(undef, "Open git-diff-tree failed"); my @difftree = map { chomp; $_ } <$fd>; @@ -2221,7 +2228,6 @@ sub git_commitdiff_plain { } print $cgi->header(-type => "text/plain", -charset => 'utf-8', '-content-disposition' => "inline; filename=\"git-$hash.patch\""); - my %co = git_read_commit($hash); my %ad = date_str($co{'author_epoch'}, $co{'author_tz'}); my $comment = $co{'comment'}; print "From: $co{'author'}\n" . -- 1.4.1.gfd699 - : 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