From: Junio C Hamano Date: Tue, 29 Aug 2006 00:16:36 GMT Subject: Re: [PATCH] gitweb: Add local time and timezone to git_print_authorship Message-ID: <7vveocpfa3.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <11567998513000-git-send-email-jnareb@gmail.com> Jakub Narebski 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 { 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 "\n"; - print "\n"; print "
CommitLineData
" . + print "" . $cgi->a({-href => href(action=>"commit", hash=>$full_rev, file_name=>$file_name)}, esc_html($rev)) . "" .