Page MenuHomePhabricator

Survive importing Git commits with no commit message and/or no author
ClosedPublic

Authored by epriestley on Tue, May 19, 3:00 AM.

Details

Summary

Ref T13538. See PHI1739. Synthetic Git commits with no author and/or no commit message currently extract null and then fail to parse.

Ideally, we would carefully distinguish between null and empty string. In practice, that requires significant schema changes (these columns are non-nullable and have indexing requirements) and these cases are degenerate. These commits are challenging to build and can not normally be constructed with git commit.

At least for now, merge the null cases into the empty string cases so we can survive import.

Test Plan
  • Constructed a commit with no author and no commit message using the approach described in T13538; pushed and parsed it.
  • Before: fatals during identity selection and storing the commit message (both roughly NULL inserts into non-null columns).
  • After: clean import.

This produces a less-than-ideal UI in Diffusion, but it doesn't break anything:

Diff Detail

Repository
rP Phabricator
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

epriestley created this revision.Tue, May 19, 3:00 AM
This revision was not accepted when it landed; it landed in state Needs Review.Tue, May 19, 3:01 AM
epriestley requested review of this revision.
This revision was automatically updated to reflect the committed changes.