Jakub Narebski <jnareb@xxxxxxxxx> writes: > Add local time (hours and minutes) and local timezone to the output of > git_print_authorship command, used by git_commitdiff. Looks nice, thanks. Now I got envious seeing people are having SO MUCH FUN with gitweb, so here is mine... Likes, dislikes, "your color selection sucks ;-)",... ? -- >8 -- gitweb: show age and author in blame output This does two things. - The commit object name link on each link uses "title", which shows the author and age of the particular line when hovered over. - The background of these links are painted on darker color as they become older and the links on younger lines are shown on lighter background. --- diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css index eb9fc38..008ee70 100644 --- a/gitweb/gitweb.css +++ b/gitweb/gitweb.css @@ -215,6 +215,12 @@ td.sha1 { font-family: monospace; } +td.age-week { color: #00f; background-color: #fff; } +td.age-month { color: #00f; background-color: #eef; } +td.age-season { color: #00f; background-color: #ddf; } +td.age-year { color: #00f; background-color: #ccf; } +td.age-old { color: #00f; background-color: #bbf; } + td.error { color: red; background-color: yellow; diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 9324d71..7dbd40f 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -2190,7 +2190,7 @@ sub git_blame2 { if ($ftype !~ "blob") { die_error("400 Bad Request", "Object is not a blob"); } - open ($fd, "-|", git_cmd(), "blame", '-l', $file_name, $hash_base) + open ($fd, "-|", git_cmd(), "blame", '-l', '-t', $file_name, $hash_base) or die_error(undef, "Open git-blame failed"); git_header_html(); my $formats_nav = @@ -2211,12 +2211,21 @@ sub git_blame2 { <table class="blame"> <tr><th>Commit</th><th>Line</th><th>Data</th></tr> HTML + my $now = time(); while (<$fd>) { - /^([0-9a-fA-F]{40}).*?(\d+)\)\s{1}(\s*.*)/; - my $full_rev = $1; + my ($full_rev, $author, $timestamp, $zone, $lineno, $data) = + /^([0-9a-fA-F]{40})\s\((.*?)\s+(\d+)\s + ([-+\d]{5})\s+(\d+)\)\s{1}(\s*.*)/x; my $rev = substr($full_rev, 0, 8); - my $lineno = $2; - my $data = $3; + + my $age = $now - $timestamp; + my $ago = age_string($age); + my $pop = "$author, $ago"; + my $agegroup = + (($age < 60*60*24*7) ? "age-week" : + ($age < 60*60*24*30) ? "age-month" : + ($age < 60*60*24*120) ? "age-season" : + ($age < 60*60*24*360) ? "age-year" : "age-old"); if (!defined $last_rev) { $last_rev = $full_rev; @@ -2225,7 +2234,8 @@ HTML $current_color = ++$current_color % $num_colors; } print "<tr class=\"$rev_color[$current_color]\">\n"; - print "<td class=\"sha1\">" . + print "<td class=\"sha1 $agegroup\" title=\"" . + esc_html($pop) ."\">" . $cgi->a({-href => href(action=>"commit", hash=>$full_rev, file_name=>$file_name)}, esc_html($rev)) . "</td>\n"; print "<td class=\"linenr\"><a id=\"l$lineno\" href=\"#l$lineno\" class=\"linenr\">" . - 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