Page MenuHomePhabricator

Survive hand-crafted Git commits which are missing timestamp information
ClosedPublic

Authored by epriestley on Jan 4 2017, 3:45 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Apr 19, 6:00 PM
Unknown Object (File)
Mon, Apr 8, 7:21 AM
Unknown Object (File)
Mon, Apr 8, 3:54 AM
Unknown Object (File)
Wed, Apr 3, 11:57 AM
Unknown Object (File)
Wed, Apr 3, 11:56 AM
Unknown Object (File)
Tue, Apr 2, 12:56 PM
Unknown Object (File)
Sun, Mar 31, 5:15 AM
Unknown Object (File)
Sat, Mar 30, 11:28 PM
Subscribers
None

Details

Summary

Fixes T12062. Like the commits from the year 3500, you can artificially build commits with no date information.

We could explicitly store these as null to fully respect the underlying datastore. However, I think it's very unlikely that these commits are intentional/meaningful or that this is valuable.

Additionally, "git show" interprets these commits as "Jan 1, 1970". Just store a 0 to mimic its behavior.

Test Plan
  • Following the process in T11537#192019, artificially created a commit with no date information (I deleted all date information from the message).
  • Used git show / git log --format ... to inspect it: "Jan 1, 1970" on git show, no information at all on %aD, %aT, etc.
  • Pushed it.
  • Saw exception for trying to insert empty string into epoch colum from bin/repository update.
  • Applied patch.
  • Got a clean import.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable