Homec4science

Survive hand-crafted Git commits which are missing timestamp information

Authored by epriestley <git@epriestley.com> on Jan 4 2017, 16:17.

Description

Survive hand-crafted Git commits which are missing timestamp information

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.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12062

Differential Revision: https://secure.phabricator.com/D17136

Details

Committed
epriestley <git@epriestley.com>Jan 4 2017, 18:07
Pushed
aubortJan 31 2017, 17:16
Parents
rPHc07ec8fee642: Preserve nonstandard ports during 404 redirects which add "/" to the ends of…
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH451610949515: Survive hand-crafted Git commits which are missing timestamp information (authored by epriestley <git@epriestley.com>).Jan 4 2017, 18:07