On 10-Sep-19 19:26, Jeff King wrote:
On Tue, Sep 10, 2019 at 05:14:53PM +0300, Diomidis Spinellis wrote:
As people use Git to create synthetic commits of code written in the past
[1,2] it becomes important to handle dates before the Unix epoch (1/1/1970).
I see that modern C libraries, Unix kernels, and tools can handle such
dates.  However Git seems to mishandle such dates in several places, such as
in date.c [3,4].  I'm planning to work on a fix, but before I embark on this
I have a few questions.
- Can you think of any non-obvious issues (e.g. backward compatibility,
switch to the Gregorian calendar) I should be aware of?

The big question is: what will existing implementations do with a commit
object that contains a negative timestamp?

Negative timestamps can already be created, because some Git libraries can create such objects, and one can also create them by hand; see http://git.661346.n2.nabble.com/Back-dating-commits-way-back-for-constitution-git-tp5365303p5367657.html

Consequently, I don't think that worrying about how existing clients will handle such timestamps should be a big issue, as long as we don't break the handling of modern dates.

> Coincidentally I was looking into this yesterday. See below.
Here's how far I got working on this yesterday. It's quite messy, but
seems to work at least for basic tests like:

Amazing! Given that you have made significant progress, I think it's best to leave it to you to complete it, right?


Reply via email to