All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <junkio@cox.net>
To: Jakub Narebski <jnareb@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] gitweb: Add local time and timezone to git_print_authorship
Date: Mon, 28 Aug 2006 17:16:36 -0700	[thread overview]
Message-ID: <7vveocpfa3.fsf@assigned-by-dhcp.cox.net> (raw)
In-Reply-To: <11567998513000-git-send-email-jnareb@gmail.com> (Jakub Narebski's message of "Mon, 28 Aug 2006 23:17:31 +0200")

Jakub Narebski <jnareb@gmail.com> 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\">" .

  reply	other threads:[~2006-08-29  0:16 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-28 12:48 [PATCH 0/5] gitweb: Additions to commitdiff view Jakub Narebski
2006-08-28 12:48 ` [PATCH 1/5] gitweb: Make git_print_log generic; git_print_simplified_log uses it Jakub Narebski
2006-08-28 12:48 ` [PATCH 2/5] gitweb: Do not remove signoff lines in git_print_simplified_log Jakub Narebski
2006-08-28 12:48 ` [PATCH 3/5] gitweb: Add author information to commitdiff view Jakub Narebski
2006-08-28 12:48 ` [PATCH 4/5] gitweb: git_print_log: signoff line is non-empty line Jakub Narebski
2006-08-28 12:48 ` [PATCH 5/5] gitweb: Add diff tree, with links to patches, to commitdiff view Jakub Narebski
2006-08-28 17:26 ` [PATCH 0/5] gitweb: Additions " Linus Torvalds
2006-08-28 21:17   ` [PATCH] gitweb: Add local time and timezone to git_print_authorship Jakub Narebski
2006-08-29  0:16     ` Junio C Hamano [this message]
2006-08-29  8:23       ` Jakub Narebski
2006-08-29  9:05         ` Junio C Hamano
2006-08-29 10:15           ` Jakub Narebski
2006-08-30  4:26             ` Junio C Hamano
2006-08-30  9:47               ` Jakub Narebski
2006-08-29  9:06       ` [PATCH] gitweb: split output routine of blame2 Junio C Hamano
2006-08-29  9:06       ` [PATCH] gitweb: show rev only on the first line of each group in blame Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vveocpfa3.fsf@assigned-by-dhcp.cox.net \
    --to=junkio@cox.net \
    --cc=git@vger.kernel.org \
    --cc=jnareb@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.