If the user has configured log.showSignature in ~/.gitconfig, all invocations of
git log will include signature information. This triggers the following bug:
EXCEPTION: (Exception) Diff Parse Exception: Expected 'Author:'. 1 commit <hash> >>> 2 gpg: Signature made Mon 07 Sep 2020 08:32:40 PM EDT 3 gpg: using RSA key <key hash> 4 gpg: Good signature from <name> [ultimate] at [<arcanist>/src/parser/ArcanistDiffParser.php:1223] arcanist(), phutil() #0 ArcanistDiffParser::didFailParse(string) called at [<arcanist>/src/parser/ArcanistDiffParser.php:392] #1 ArcanistDiffParser::parseCommitMessage(ArcanistDiffChange) called at [<arcanist>/src/parser/ArcanistDiffParser.php:334] #2 ArcanistDiffParser::parseDiff(string) called at [<arcanist>/src/repository/api/ArcanistGitAPI.php:1129] #3 ArcanistGitAPI::loadWorkingCopyDifferentialRevisions(ConduitClient, array) called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1493] #4 ArcanistDiffWorkflow::buildCommitMessage() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:469] #5 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:394]
Solution: Pass the “–no-show-signature” flag, introduced in Git 2.10.0, to all invocations of
git log in ArcanistGitAPI.php.