On 4 Aug 2013, at 01:17, Felipe Contreras <felipe.contre...@gmail.com> wrote:
> On Sat, Aug 3, 2013 at 11:36 AM, Jörn Hees <d...@joernhees.de> wrote:
>> it seems that if you use the 18.104.22.168 remote-helpers/git-remote-hg to clone a
>> mercurial repo the timezone information of commits gets transformed into
>> your current timezone.
>> (command: git clone hg::…)
>> I noticed this when a colleague in another timezone used Kiln to also export
>> the same mercurial repo that i had cloned from git before.
>> Fetching from his git repo gives me a "second root tree" with all commits
>> A git show of two equivalent commit reveals that the Date: line of the
>> commits changed.
>> Tracking this back into the original mercurial repo reveals that _his_ times
>> are correct.
>> This will also make two or more clones from different timezones all using
>> the same hg remote repo incompatible!
>> Original mercurial commit (timezone: -7200 = -4h)
sorry, i feel stupid for this now… this obviously is -2h: 2*60*60… not 4
(but see below)
>> Lipis git export via Kiln: (-4h)
so is this: it should've said -2h
>> My export via git clone hg::ssh://h...@bitbucket.org/lipis/gae-init (+2h)
this one was correct: +2h
> Actually our version is the correct one:
> % hg commit -m one -d "2012-04-28 11:28 +0200"
> % hg export
> # HG changeset patch
> # User Felipe Contreras <felipe.contre...@gmail.com>
> # Date 1335605280 -7200
> # Sat Apr 28 11:28:00 2012 +0200
Thanks for clarifying this. I had falsely assumed that no one would dare to
flip the sign of the timezone spec.
Turns out that mercurial commits contain the _negative_ timezone offset in
seconds, so UTC+2 will actually be saved as -7200!
I was actually still doubtful so i searched for some credible ref and was able
to find this insanity documented in "hg help dates":
> - "1165432709 0" (Wed Dec 6 13:18:29 2006 UTC)
> This is the internal representation format for dates. The first number is
> the number of seconds since the epoch (1970-01-01 00:00 UTC). The second
> is the offset of the local timezone, in seconds west of UTC (negative if
> the timezone is east of UTC).
I use the word insane here, as there are many standards for date times, but not
one dares to switch the timezone sign!
I'm sorry for reporting this as a bug and instead have to pull my hat.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html