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)
Sun, Dec 22, 2:46 AM
Unknown Object (File)
Sat, Dec 21, 11:53 AM
Unknown Object (File)
Sun, Dec 15, 2:31 AM
Unknown Object (File)
Tue, Dec 10, 10:19 PM
Unknown Object (File)
Tue, Dec 3, 1:03 AM
Unknown Object (File)
Sun, Dec 1, 11:50 PM
Unknown Object (File)
Oct 24 2024, 6:36 PM
Unknown Object (File)
Oct 16 2024, 4:21 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