From: Jeff King Date: Mon, 20 Jun 2016 21:09:01 GMT Subject: [PATCH 0/3] fix local_tzoffset with far-in-future dates Message-ID: <20160620210901.GE3631@sigill.intra.peff.net> In-Reply-To: <20160620200011.GC3631@sigill.intra.peff.net> On Mon, Jun 20, 2016 at 04:00:12PM -0400, Jeff King wrote: > You _should_ be able to get the right answer by asking git for > --date=local, but it doesn't seem to work. Looks like it is because our > tm_to_time_t hits this code: > > if (year < 0 || year > 129) /* algo only works for 1970-2099 */ > return -1; > > and the caller does not actually check the error. The resulting timezone > is the screwed-up -40643156, which is perhaps how it got into the commit > in the first place. So here's a patch to fix that (along with some test infrastructure to support it). I still don't know how that screwed-up timestamp got _into_ a commit, so perhaps there is another bug lurking. I couldn't convince git to parse anything beyond 2100, and committing with GIT_AUTHOR_DATE='@5758122296 +0000' works just fine. [1/3]: t0006: rename test-date's "show" to "relative" [2/3]: t0006: test various date formats [3/3]: local_tzoffset: detect errors from tm_to_time_t -Peff