From a69aba6af3e96f8021c194691a851e78febd70bf Mon Sep 17 00:00:00 2001
From: Andy Parkins <andyparkins@gmail.com>
Date: Fri, 26 Jan 2007 08:58:48 +0000
Subject: [PATCH] UNIX reference time of 1970-01-01 00:00 is UTC timezone, not
 local time zone

I got bitten because in the UK (where one would expect 1970-01-01 00:00
to be UTC 0) some politicians decided to mess around with daylight
savings time from 1968 to 1971; it was permanently BST (+0100).  That
means that on my computer the following is true:

	$ date --date="1970-01-01 00:00" +"%F %T %z (%Z)"
	1970-01-01 00:00:00 +0100 (BST)

This of course means that the --date argument to date is specified in
local time, not UTC.  So when the hooks--update script does this:

	date=$(date --date="1970-01-01 00:00:00 $ts seconds")

It's actually saying (in my timezone) "1970-01-01 01:00:00 UTC" + $ts.
Clearly this is wrong.  The UNIX epoch started at midnight UTC not 1am
UTC.

This leads to the tagged time in hooks--update being shown as one hour
earlier than the true tagged time (in my timezone).  The problem would
be worse for other timezones.  For a +1300 timezone on 1970-01-01, the
tagged time would be 13 hours earlier.  Oops.

The solution is to force the reference time to UTC, which is what this
patch does.  In my timezone:

	$ date --date="1970-01-01 00:00 +0000" +"%F %T %z (%Z)"
	1970-01-01 01:00:00 +0100 (BST)

Much better.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
---
 templates/hooks--update | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/templates/hooks--update b/templates/hooks--update
index 9863a800c8b..81f706fb0de 100644
--- a/templates/hooks--update
+++ b/templates/hooks--update
@@ -46,7 +46,7 @@ then
 		if [ "$ref_type" = tag ]; then
 			eval $(git cat-file tag $3 | \
 				sed -n '4s/tagger \([^>]*>\)[^0-9]*\([0-9]*\).*/tagger="\1" ts="\2"/p')
-			date=$(date --date="1970-01-01 00:00:00 $ts seconds" +"$date_format")
+			date=$(date --date="1970-01-01 00:00:00 +0000 $ts seconds" +"$date_format")
 			echo "Tag '$tag' created by $tagger at $date"
 			git cat-file tag $3 | sed -n '5,$p'
 			echo