• epriestley's avatar
    Survive importing Git commits with no commit message and/or no author · 0c51885c
    epriestley authored
    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:
    
    {F7492094}
    
    Maniphest Tasks: T13538
    
    Differential Revision: https://secure.phabricator.com/D21266
    0c51885c
PhabricatorRepositoryCommitMessageParserWorker.php 8.94 KB