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

Re: Odd broken "--date=now" behavior in current git

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 15, 2015, 04:47 UTC
Message-ID
<xmqqzj6ayp3p.fsf@gitster.dls.corp.google.com>
In-Reply-To
<CA+55aFxvcN8Dz-t6fi6etycg+AiyR0crXv5AcfCdv8ji-iNBpw@mail.gmail.com>
Linus Torvalds <torvalds@linux-foundation.org> writes:
Show 40 quoted lines
> I just noticed this because I had amended some merge commits with
>
>    git commit --amend --date=now
>
> to update them, and that gets some funny broken timezones. I suspect
> it's some silly daylight savings time issue.
>
> Lookie here, I can reproduce it trivially with current git (in the git
> repo itself):
>
>     [torvalds@i7 git]$ date; git commit -m Test --allow-empty --date=now
>     Tue Apr 14 21:11:03 PDT 2015
>     [master ec7733db5360] Test
>      Date: Tue Apr 14 20:11:03 2015 -0800
>
> notice how the commit date message shows something funny. It shows an
> hour earlier, but in -0800.
>
> And the resulting commit is broken:
>
>     [torvalds@i7 git]$ git show --pretty=fuller
>     commit ec7733db5360966434e03eab1a849e6d4227231c (HEAD -> master)
>     Author:     Linus Torvalds <torvalds@linux-foundation.org>
>     AuthorDate: Tue Apr 14 20:11:03 2015 -0800
>     Commit:     Linus Torvalds <torvalds@linux-foundation.org>
>     CommitDate: Tue Apr 14 21:11:03 2015 -0700
>
>         Test
>
> notice how the AuthorDate has that "-0800", but the CommitDate has "-0700".
>
> Hmm.
>
> I can't be the only one seeing this? My guess is that there's a
> missing initialization of tm.tm_isdst somewhere or whatever.
>
> The above is with current git:
>
>     [torvalds@i7 git]$ git version
>     git version 2.4.0.rc2

With a quick check, the symptom exists at least at v2.1.4. v2.0.x series does not seem to have --date=now support but since there is no change to date.c between v2.0.0 to v2.1.4, older approxidate may be equally broken.

Will dig tomorrow, if nobody beats me to it, that is.
Thanks.
Previous: Linus TorvaldsNext: Eric Sunshine
Message 2 of 10 in “Odd broken "--date=now" behavior in current git”
  1. Linus TorvaldsApr 15, 2015
  2. Junio C HamanoApr 15, 2015
  3. Eric SunshineApr 15, 2015
  4. Junio C HamanoApr 15, 2015
  5. 1/2 parse_date_basic(): return early when given a bogus timestampJunio C Hamano, Apr 15, 2015
  6. 2/2 parse_date_basic(): let the system handle DST conversionJunio C Hamano, Apr 15, 2015
  7. Eric SunshineApr 15, 2015
  8. Linus TorvaldsApr 15, 2015
  9. Junio C HamanoApr 15, 2015
  10. Peter KreftingApr 15, 2015

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.