From 60e2cd1e2dbf68e850bc352a515c37a282940d13 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Martineau Date: Mon, 7 Sep 2026 01:08:05 -0400 Subject: [PATCH] Blame skips the sweep and answers with the author MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The commit before this one rewrote a hundred and fifty-three files without changing what any of them does. Left alone, that is what `git blame` would name for half the lines in the repo — the formatter, standing in front of whoever actually wrote the line and whatever they were thinking at the time. `.git-blame-ignore-revs` is the file that fixes it. GitHub reads it with no setup at all, so the blame view on the web is already right; locally it needs `git config blame.ignoreRevsFile .git-blame-ignore-revs` once, which is now step two of the dev install in CONTRIBUTING alongside the editable install, since a contributor who never runs it gets the wrong answer silently rather than an error. The file's header states the bar for being in it: whole-tree, provably behaviour-free. That is a deliberately narrow door — an entry here makes a commit invisible to the tool people use to ask why a line looks the way it does, and a commit that changed anything real must never be able to hide behind it. Verified rather than assumed: `git blame` on a line the sweep rewrote now reports `f07f8c1b` from July, which is the commit that actually wrote it. Co-Authored-By: Claude Opus 5 (1M context) --- .git-blame-ignore-revs | 13 +++++++++++++ CONTRIBUTING.md | 1 + 2 files changed, 14 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000..d9814f5 --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,13 @@ +# Commits that changed how the code is spelled, never what it does. `git blame` skips +# them so a line's history points at whoever last had something to say about it. +# +# GitHub reads this file by itself. Locally it has to be wired up once: +# +# git config blame.ignoreRevsFile .git-blame-ignore-revs +# +# Only whole-tree, provably behaviour-free commits belong here. + +# Whole-repo `ruff format .` before the public release: 153 files, 152 of them verified +# AST-identical, the suite green at 1888, and `meshterm specimen` byte-identical on both +# platforms. +92d31a31913b036a76ed27c20863f65a53b0e14d diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index cd475f9..522b5bb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,6 +34,7 @@ this repository. 2. Set up a dev install: ```bash pip install -e ".[dev]" + git config blame.ignoreRevsFile .git-blame-ignore-revs # skip the formatting sweeps ``` 3. Before opening the PR, make sure these all pass: ```bash