Skip to content

Pass --no-show-signature so Log and Commit survive log.showSignature [patch] - #179

Merged
matt-edmondson merged 1 commit into
mainfrom
fix/135-no-show-signature
Oct 6, 2026
Merged

matt-edmondson merged 1 commit into
mainfrom
fix/135-no-show-signature

Conversation

@matt-edmondson

Copy link
Copy Markdown
Contributor

Fixes #135

What changed

  • GitLogBuilder.AppendVerbArguments now adds --no-show-signature right after log. With log.showSignature=true, git prints each signed commit's verification to stdout ahead of the record, even under a custom --format. GitLogParser was reading that output as part of the commit id.
  • Commit() reuses the Log() vector for its git log -1 read-back, so this one flag fixes it too. Before the fix, a signed commit that git did make was reported to the caller as a failure, and a retry would create a duplicate.
  • Added a short note to CLAUDE.md (Bump the ktsu group with 4 updates #15) alongside the other config pins.

Tests

  • GitRoundTripTests.LogAndCommitIgnoreTheHostsShowSignatureSettingAsync is a real-git integration test. It sets log.showSignature=true, puts a commit with a forged gpgsig header at HEAD (so no signing key is needed: git still runs gpg on it and prints the result), then calls Log() and Commit().
  • GitCommitBuilderTests.TheReadBackSuppressesSignatureOutputAsync checks that the read-back vector carries the flag.
  • GitLogBuilderTests.BuildsTheDefaultLogVector has its expected vector updated.

With the fix temporarily reverted, all three fail. The integration test fails with the exception from the issue (GitParseException: git reported a commit id that is not valid: 'gpg: …). With the fix in place, the full suite passes locally on Linux: 735/735.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GUKjHWJy9iwpdVJ1NKRU1M


Generated by Claude Code

…[patch]

With log.showSignature=true git prints each signed commit's verification
ahead of the record, custom --format or not, and the parser read it as part
of the commit id. Log() threw for any history containing a signed commit,
and Commit() threw after git had already made the commit, because its
read-back reuses the Log() vector.

Fixes #135

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GUKjHWJy9iwpdVJ1NKRU1M
@sonarqubecloud

sonarqubecloud Bot commented Oct 6, 2026

Copy link
Copy Markdown

@matt-edmondson
matt-edmondson merged commit 548d907 into main Oct 6, 2026
16 checks passed
@matt-edmondson
matt-edmondson deleted the fix/135-no-show-signature branch October 6, 2026 12:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

With log.showSignature=true, Log() throws GitParseException on any signed commit, and Commit() throws after the commit has already been made

2 participants