gitweb: Mark commits with no "previous" in 'blame' view
authorJakub Narebski <jnareb@gmail.com>
Fri, 24 Jul 2009 22:44:04 +0000 (00:44 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 25 Jul 2009 08:39:16 +0000 (01:39 -0700)
Use "no-previous" class to mark blamed commits which do not have
"previous" header.  Those are commits in which blamed file was created
(added); this includes boundary commits.  This means that 'linenr'
link leads to blamed commit, not (one of) parent of blamed commit.
Therefore currently line number for such commit uses bold weight font
to denote this situation; the effect is subtle.

Use "multiple-previous" class in the opposite situation, where blamed
commit has multiple "previous" headers (is an evil merge).  Currently
this class is not used for styling.  In this situation 'linenr' link
leads to first of "previous" commits (first parent).

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.css
gitweb/gitweb.perl

index f47709bac550aa906139feb34a56774dbc9a31be..47633376d1af3ac4345ced69560416d43f3a4c1f 100644 (file)
@@ -242,7 +242,8 @@ tr.dark:hover {
        background-color: #edece6;
 }
 
-tr.boundary td.sha1 {
+tr.boundary td.sha1,
+tr.no-previous td.linenr {
        font-weight: bold;
 }
 
index b8a121bb989d290a48d98d8fd2554641299ced6a..128bddd38154fa6fb745f42a5553e5bde9360a2b 100755 (executable)
@@ -4819,7 +4819,7 @@ HTML
                my ($full_rev, $orig_lineno, $lineno, $group_size) =
                   ($line =~ /^([0-9a-f]{40}) (\d+) (\d+)(?: (\d+))?$/);
                if (!exists $metainfo{$full_rev}) {
-                       $metainfo{$full_rev} = {};
+                       $metainfo{$full_rev} = { 'nprevious' => 0 };
                }
                my $meta = $metainfo{$full_rev};
                my $data;
@@ -4829,6 +4829,9 @@ HTML
                        if ($data =~ /^(\S+)(?: (.*))?$/) {
                                $meta->{$1} = $2 unless exists $meta->{$1};
                        }
+                       if ($data =~ /^previous /) {
+                               $meta->{'nprevious'}++;
+                       }
                }
                my $short_rev = substr($full_rev, 0, 8);
                my $author = $meta->{'author'};
@@ -4840,6 +4843,8 @@ HTML
                }
                my $tr_class = $rev_color[$current_color];
                $tr_class .= ' boundary' if (exists $meta->{'boundary'});
+               $tr_class .= ' no-previous' if ($meta->{'nprevious'} == 0);
+               $tr_class .= ' multiple-previous' if ($meta->{'nprevious'} > 1);
                print "<tr id=\"l$lineno\" class=\"$tr_class\">\n";
                if ($group_size) {
                        print "<td class=\"sha1\"";