Skip to content

fix(hooks): cover cherry-pick and git am, and correct the claim that they could not be - #3330

Merged
gHashTag merged 2 commits into
masterfrom
cover-cherry-pick-and-am
Sep 5, 2026
Merged

fix(hooks): cover cherry-pick and git am, and correct the claim that they could not be#3330
gHashTag merged 2 commits into
masterfrom
cover-cherry-pick-and-am

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 5, 2026

Copy link
Copy Markdown
Owner

Closes #3329

Correcting my own published claim. Section 594 and its note said cherry-pick runs neither commit hook and git offers none that could stop it. That was measured with markers on six hook names. Re-measured over the full thirteen:

event hooks that fire
normal commit pre-commit, prepare-commit-msg, commit-msg, post-commit
merge --no-ff pre-merge-commit, prepare-commit-msg, commit-msg
cherry-pick prepare-commit-msg, post-commit
git am applypatch-msg, pre-applypatch, post-applypatch
rebase nothing

A non-zero exit from prepare-commit-msg aborts a cherry-pick (exit 128, no commit created) and from applypatch-msg aborts a git am (exit 1, no commit created). Both verified directly.

"Nothing fired" can mean "I did not look". The population of a probe is as narrow as its instrument list — that is the lesson, and it is now section 594's closing line.

Three hooks added. prepare-commit-msg gates only when .git/CHERRY_PICK_HEAD exists, so an ordinary commit still pays exactly one barrier run — verified at 1, not 2.

Both controls were void on their first run and had to be redone, which is why they are quoted: the ordinary-commit control was refused by the census for an unrelated reason, and the git am control was refused by git itself for a dirty index. Neither refusal came from the hook under test.

rebase fires nothing at all and remains genuinely uncovered.

Also blessing two census moves that are NOT mine: quiet 128 → 127 and shell 235 → 234, from a neighbour repairing two workflows (95d93c6, 3429f9c). Confirmed on a clean origin/master checkout with the same binary before blessing; cli-tri has been red on master since those merges.

@gHashTag
gHashTag enabled auto-merge (squash) September 5, 2026 19:09
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-05 19:13:38 UTC

Summary

Status Count
Total Open PRs 16
PRs with Failing Checks 12
PRs with All Checks Green 4
READY 3
FAILING 12
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=ffccfa1a71cf != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 229686d into master Sep 5, 2026
28 checks passed
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.

cherry-pick and git am can be stopped after all, and my note said they could not

1 participant