X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/416cfa273fe54094a3de0b8edff22e1c7af1beec794b457c9cecef19e2a6654b..e0a6228ec35491febcc3edd1ef6fbba95bce26fd7315b3a45f6c71a88e724ef6:/gitweb.perl
diff --git a/gitweb.perl b/gitweb.perl
index 6dcca8c..13910bc 100755
--- a/gitweb.perl
+++ b/gitweb.perl
@@ -4827,8 +4827,8 @@ HTML
while ($data = <$fd>) {
chomp $data;
last if ($data =~ s/^\t//); # contents of line
- if ($data =~ /^(\S+) (.*)$/) {
- $meta->{$1} = $2;
+ if ($data =~ /^(\S+)(?: (.*))?$/) {
+ $meta->{$1} = $2 unless exists $meta->{$1};
}
}
my $short_rev = substr($full_rev, 0, 8);
@@ -4839,7 +4839,9 @@ HTML
if ($group_size) {
$current_color = ($current_color + 1) % $num_colors;
}
- print "
\n";
+ my $tr_class = $rev_color[$current_color];
+ $tr_class .= ' boundary' if (exists $meta->{'boundary'});
+ print "
\n";
if ($group_size) {
print "\n";
}
- my $parent_commit;
- if (!exists $meta->{'parent'}) {
- open (my $dd, "-|", git_cmd(), "rev-parse", "$full_rev^")
- or die_error(500, "Open git-rev-parse failed");
- $parent_commit = <$dd>;
- close $dd;
- chomp($parent_commit);
- $meta->{'parent'} = $parent_commit;
- } else {
- $parent_commit = $meta->{'parent'};
- }
+ # 'previous'
+ if (exists $meta->{'previous'} &&
+ $meta->{'previous'} =~ /^([a-fA-F0-9]{40}) (.*)$/) {
+ $meta->{'parent'} = $1;
+ $meta->{'file_parent'} = unquote($2);
+ }
+ my $linenr_commit =
+ exists($meta->{'parent'}) ?
+ $meta->{'parent'} : $full_rev;
+ my $linenr_filename =
+ exists($meta->{'file_parent'}) ?
+ $meta->{'file_parent'} : unquote($meta->{'filename'});
my $blamed = href(action => 'blame',
- file_name => $meta->{'filename'},
- hash_base => $parent_commit);
+ file_name => $linenr_filename,
+ hash_base => $linenr_commit);
print "| ";
print $cgi->a({ -href => "$blamed#l$orig_lineno",
-class => "linenr" },
| |