fix: 45 server-side merge commits on main carry the forge noreply identity, not jon@sixfold.space #436
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#436
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
45 commits on
mainhave author AND committer set to a forge noreply address, notjon@sixfold.space:hexajon@noreply.codeberg.org(Codeberg era, carried over in the migration).hexajon@noreply.git.cheshirecube.cloud(a72431b7, recent).All 45 are server-side merge commits: PR merges, or "Merge branch 'main' into " branch updates. The other ~3015 commits are correct.
Root cause
The forge writes a server-side merge commit as the authenticated account. It represents that account with the account noreply email. A local merge would use the git identity (
jon@sixfold.space), so the noreply email is the sign that the forge minted the commit. The trigger was the branch-UPDATE step:default_update_stylewasmerge, so updating a PR branch withmainminted a merge commit, and the fast-forward merge then carried it ontomain.Prevention (done)
I set
default_update_styletorebase.default_merge_styleis alreadyfast-forward-only. Now no forge path mints a commit: the merge fast-forwards, and a branch update rebases. No new noreply commit can appear.Open decision
What to do about the 45 existing commits. Re-authoring them rewrites merged history and forces a push to
main, the same manual by-hand step as #422. The 44 Codeberg-era commits sit deep in history, so re-authoring them rewrites almost the whole tree and every downstream hash (the GitHub source mirror too, #386). Options:I need to settle this before any rewrite.
Related
Decided: accept all 45 noreply-authored merge commits as migration history. No re-authoring.
44 are Codeberg-era migration artifacts and 1 is a recent cheshirecube merge. A deep rewrite of nearly the whole tree and the GitHub mirror (#386) is not worth the attribution gain. Prevention is already applied: fast-forward-only mints no new merge commit, and commit identity now comes from the target repo (PR #448), so no new noreply commits appear going forward.
Because this accepts the 45, the #422 re-sign stays a shallow rewrite of only the six unsigned commits. Clearing needs-decision.