Re: [PATCH 2/2] gitweb: introduce localtime feature
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:50:48
Kevin Cernekee [off-list ref] writes:
With this feature enabled, all timestamps are shown in the machine's local timezone instead of GMT.
This does not describe why would one want such way of displaying timestamps, and which views would be affected. BTW. should it be timezone of web server (machine where gitweb is run), or local time of author / committer / tagger as described in the timezone part of git timestamp?
quoted hunk ↗ jump to hunk
Signed-off-by: Kevin Cernekee <cernekee@gmail.com> --- gitweb/gitweb.perl | 14 +++++++++++++- 1 files changed, 13 insertions(+), 1 deletions(-)diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 3b6a90d..d171ad5 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl@@ -504,6 +504,12 @@ our %feature = ( 'sub' => sub { feature_bool('remote_heads', @_) }, 'override' => 0, 'default' => [0]}, + + # Use localtime rather than GMT for all timestamps. Disabled + # by default. Project specific override is not supported. + 'localtime' => { + 'override' => 0, + 'default' => [0]},
Why project specific override is not supported? I think it might make sense to enable this feature on project-by-project basis; some projects might be dispersed geographically, some might not. It is not as if this feature affect only non-project views, or doesn't make sense on less that site-wide basis, like other nonoverridable features.
quoted hunk ↗ jump to hunk
); sub gitweb_get_feature {@@ -2927,6 +2933,12 @@ sub parse_date { $date{'iso-tz'} = sprintf("%04d-%02d-%02d %02d:%02d:%02d %s", 1900+$year, $mon+1, $mday, $hour, $min, $sec, $tz); + + if (gitweb_check_feature('localtime')) { + $date{'rfc2822'} = sprintf "%s, %d %s %4d %02d:%02d:%02d $tz", + $days[$wday], $mday, $months[$mon], + 1900+$year, $hour ,$min, $sec; + }
Is it still an RFC 2822 conformant date? If it is not, then above change is invalid, and we have to implement this feature in different way.
quoted hunk ↗ jump to hunk
return %date; }@@ -3989,7 +4001,7 @@ sub git_print_authorship_rows { "</td></tr>\n" . "<tr>" . "<td></td><td> $wd{'rfc2822'}"; - print_local_time(%wd); + print_local_time(%wd) if !gitweb_check_feature('localtime');
Hmmm... I wonder if it wouldn't be better to print both times (perhaps reversed) in this case...
print "</td>" . "</tr>\n"; } -- 1.7.4.1
-- Jakub Narebski Poland ShadeHawk on #git