git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] Fix "cvs log" to use UTC timezone instead of local

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Sep 4, 2007, 13:22 UTC
Message-ID
<alpine.LFD.0.999.0709040612260.3088@evo.linux-foundation.org>
In-Reply-To
<11889090932256-git-send-email-xkr47@outerspace.dyndns.org>
On Tue, 4 Sep 2007, Jonas Berlin wrote:
Show 7 quoted lines
>
> The timestamp format used in "cvs log" output does not include a
> timezone, and must thus be in UTC timezone. The timestamps from git on
> the other hand contain timezone information for each commit timestamp,
> but git-cvsserver discarded this information and used the timestamps
> without adjusting the time accordingly. The patch adds code to apply
> the timezone offset to produce a UTC timestamp.
I think this is wrong.

Git *internally* stores things in UTC anyway, so if there are any local date format things, it's because git-cvsserver.perl has read the dates using some format where git has turned its internal date into a local date.

So instead of turning it back into UTC here, I think git-cvsserver should be changed to ask for the date in the native git format in the first place.

That can be done various ways:
 - use the "raw log format" which has dates as seconds-since-UTC (and with 
   an *informational* timezone thing that should then just be ignored).
   This is likely the best approach, since anything but this will 
   almost invariably result in some potentially broken TZ conversion
   back-and-forth..
 - if it really wants to use the pretty-printing support, git-cvsserver 
   should probably be changed to do something like
	TZ=UTC git rev-list --pretty --date=local
   which will pretty-print the date in local time format rather than in 
   the timezone that the commit was done in, and then the TZ=UTC obviously 
   says that the "local" zone is UTC.
Anything else *will* be broken, or will be converting back-and-forth.

For example, I think your patch may fix "cvs log", but I'm seeing some suspiciously similar code in the "cvs annotate" handling, so I suspect that would need it too.

If instead of trying to convert things to UTC on demand, git-cvsserver just asks for the git date stamps in UTC in the first place, none of the places should ever need any timezone conversion.

		Linus
Previous: Jonas BerlinNext: Jonas Berlin
Message 2 of 4 in “Fix "cvs log" to use UTC timezone instead of local”
  1. Fix "cvs log" to use UTC timezone instead of localJonas Berlin, Sep 4, 2007
  2. Linus TorvaldsSep 4, 2007
  3. Jonas BerlinSep 5, 2007
  4. Jonas BerlinSep 5, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.