Kay Sievers 20 years ago
parent
commit
703ac7102f
  1. 50
      gitweb.pl

50
gitweb.pl

@ -157,6 +157,47 @@ sub git_head {
return $head; return $head;
} }


sub git_commit {
my $commit = shift;
my %co;
my @parents;

open my $fd, "-|", "$gitbin/cat-file", "commit", $commit;
while (my $line = <$fd>) {
chomp($line);
last if $line eq "";
if ($line =~ m/^tree (.*)$/) {
$co{'tree'} = $1;
} elsif ($line =~ m/^parent (.*)$/) {
push @parents, $1;
} elsif ($line =~ m/^committer (.*>) ([0-9]+) (.*)$/) {
$co{'committer'} = $1;
$co{'committer_time'} = $2;
$co{'committer_timezone'} = $3;
} elsif ($line =~ m/^author (.*>) ([0-9]+) (.*)$/) {
$co{'$author'} = $1;
$co{'$author_time'} = $2;
$co{'$author_timezone'} = $3;
}
}
my $shortlog = <$fd>;
chomp($shortlog);
$co{'shortlog'} = escapeHTML($shortlog);
my $comment = $shortlog . "<br/>";
while (my $line = <$fd>) {
chomp($line);
if ($line =~ m/signed-off-by:/i) {
$comment .= '<div class="signed_off">' . escapeHTML($line) . "<br/></div>\n";
} else {
$comment .= escapeHTML($line) . "<br/>\n";
}
}
$co{'comment'} = $comment;
close $fd;

return %co;
}

sub git_diff { sub git_diff {
my $old_name = shift || "/dev/null"; my $old_name = shift || "/dev/null";
my $new_name = shift || "/dev/null"; my $new_name = shift || "/dev/null";
@ -408,11 +449,10 @@ if ($action eq "blob") {
print "</td>"; print "</td>";
print "</tr>\n"; print "</tr>\n";
} elsif ($action eq "rss") { } elsif ($action eq "rss") {
if ($i < 12) { last if ($i >= 12);
print "<item>\n\t<title>$age_string: $shortlog</title>\n"; print "<item>\n\t<title>$age_string: $shortlog</title>\n";
print "\t<link> " . $cgi->url() . "/$project/commit/$commit</link>\n"; print "\t<link> " . $cgi->url() . "/$project/commit/$commit</link>\n";
print "</item>\n"; print "</item>\n";
}
} }
} }
if ($action eq "log") { if ($action eq "log") {

Loading…
Cancel
Save