From 50cc74eadf0090595497f3fa0995f27333b3b594 Mon Sep 17 00:00:00 2001 From: forkwright Date: Sat, 15 Aug 2026 13:05:26 -0500 Subject: [PATCH] fix(repo): collapse the stale commit identities to one canonical author This repo is public and its history accumulated several author identities for one person: a personal address, an employer address, an unrelated venture's address, a malformed one with no TLD, and machine-local variants. Contributor views, blame and shortlog all showed them as different people, and two of them name organisations that have nothing to do with this project. A mailmap fixes attribution at read time without rewriting history. A rewrite would un-publish nothing -- the addresses are already in every existing clone and on GitHub -- while invalidating every outstanding worktree and PR. Uses the email-only form so it matches regardless of the name recorded on the commit; the name+email form missed several stragglers that used a different display name with the same address. Bot and agent identities are deliberately left distinct: they are separate actors, not spellings of the maintainer. Records the trap in the file itself: a mailmap resolves author and committer fields but does NOT edit Co-authored-by trailers, which is what a squash-merge writes. Checking those fields alone reports a clean repo while the address is still present in the message body. --- .mailmap | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 .mailmap diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..90fae8f --- /dev/null +++ b/.mailmap @@ -0,0 +1,23 @@ +# Canonical commit identity. +# +# WHY: this repo is public and its history carries four distinct author +# identities for one person -- two personal addresses and an unrelated +# venture's. A mailmap remaps them at read time in `git log`, `git shortlog`, +# `git blame` and GitHub's contributor views, without rewriting history: the +# exposure is already published, so a rewrite would un-publish nothing while +# invalidating every existing clone. +# +# WARNING: a mailmap resolves the AUTHOR and COMMITTER identity fields. It does +# not edit `Co-authored-by:` trailers, which live in the raw commit message and +# are what a GitHub squash-merge writes. Checking `%ae`/`%ce` alone therefore +# reports a clean repo while the address is still present in the body -- grep +# the message body, not the identity fields. +# +# Bot identities (forge-bot, github-actions, dependabot) are deliberately NOT +# mapped: they are separate actors, not alternate spellings of the maintainer. + +Cody Kickertz +Cody Kickertz +Cody Kickertz +Cody Kickertz +Cody Kickertz