From: Jeff King <peff@peff.net>
To: Norbert Kiesel <nkiesel@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>,
Stefan Beller <sbeller@google.com>,
"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: [PATCH 0/3] fix local_tzoffset with far-in-future dates
Date: Tue, 21 Jun 2016 08:18:14 -0400 [thread overview]
Message-ID: <20160621121813.GA31030@sigill.intra.peff.net> (raw)
In-Reply-To: <CAM+g_NtGWRCqaNz1DauZRReem0YPC6CaunHSwfhnB5LpvdGGcQ@mail.gmail.com>
On Mon, Jun 20, 2016 at 11:37:50PM -0700, Norbert Kiesel wrote:
> There are more strange things happening with dates. One example is
> that `git commit --date=@4102444799` produces a commit with the
> correct author date "Thu Dec 31 15:59:59 2099 -0800" (for my local
> timezone which is Americas/Los_Angeles), while `git commit
> --date=@4102444800` produces a commit with "now" as author date, as
> does any other larger number. `date --date=@4102444800` results in
> "Thu Dec 31 16:00:00 PST 2099". So seems 2100-01-01T00:00:00Z is a
> hard limit for git when using this format.
Yes, I noticed that, too. I suspect it comes from the same source; the
date parser calls tm_to_time_t at some point which will refuse to handle
the date, and we fallback to something else. So certainly there is room
for improvement:
1. We could handle a wider range of dates in tm_to_time_t(). This is
essentially mktime(), but notice that mktime() was avoided for good
reasons long ago, so any proposal to just move to that would need
to figure out all those reasons and whether they are still valid.
2. We should perhaps be flagging an error here instead of falling back
to the current time. I suspect this is happening because --date
falls back to approxidate() when we fail to parse the date (so you
can say things like "--date=last.friday". Especially for cases with
"@", which indicate that no approximate parsing is really required.
Note that using GIT_AUTHOR_DATE _doesn't_ go through the date
parser, but expects a raw time_t. So that does work for these
far-future dates.
I'm not planning on working on either of these in the near term, but I'd
be happy to review patches if somebody else wants to.
-Peff
next prev parent reply other threads:[~2016-06-21 12:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-20 18:41 unable to pull from remote if commit date is in the future Norbert Kiesel
2016-06-20 18:46 ` Stefan Beller
2016-06-20 19:05 ` Norbert Kiesel
2016-06-20 19:39 ` Jeff King
2016-06-20 19:45 ` Norbert Kiesel
2016-06-20 19:46 ` Jeff King
2016-06-20 20:00 ` Jeff King
2016-06-20 21:09 ` [PATCH 0/3] fix local_tzoffset with far-in-future dates Jeff King
2016-06-20 21:10 ` [PATCH 1/3] t0006: rename test-date's "show" to "relative" Jeff King
2016-06-20 21:11 ` [PATCH 2/3] t0006: test various date formats Jeff King
2016-06-20 21:14 ` [PATCH 3/3] local_tzoffset: detect errors from tm_to_time_t Jeff King
2016-06-20 22:11 ` [PATCH 0/3] fix local_tzoffset with far-in-future dates Junio C Hamano
2016-06-20 22:21 ` Jeff King
2016-06-21 6:37 ` Norbert Kiesel
2016-06-21 12:18 ` Jeff King [this message]
2016-06-20 19:49 ` unable to pull from remote if commit date is in the future Eric Deplagne
2016-06-20 20:02 ` Jeff King
2016-06-20 20:27 ` Andreas Schwab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160621121813.GA31030@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=nkiesel@gmail.com \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).