122-a-commit-refuses-an-unresolved-merge
A commit refuses an unresolved merge or an unformatted Rust change
Lifecycle approvedImplementation completeVerification unknownQualification unknown
The commit-boundary hook (spec 094) refuses a stale or invalid derived tree and nothing else, so a merge whose conflict was "resolved" by staging the markers committed cleanly, and so did a Rust change whose formatting check had failed earlier in the same command chain. Both happened on this repository's expansion branches. The hook now also refuses unmerged index entries, conflict markers on the lines a commit adds (git's own detector, with git's own attribute as the only opt-out), and a staged Rust change that fails `cargo fmt --all --check`. It still writes and stages nothing.
Read the full pinned specification ↗Relationships
depends on
Claimed units
- establishes
{ "kind": "file", "path": "crates/spec-spine-core/tests/commit_boundary.rs" } - extends
{ "nature": "additive", "spec": "094-one-gate-and-the-boundaries-it-holds", "unit": { "kind": "directory", "path": ".githooks/" } }
Source headings
- 122: A commit refuses an unresolved merge or an unformatted Rust change
- 1. Purpose
- 1.1 Two commits the boundary let through
- 1.2 What the boundary can see and what it cannot
- 2. Territory
- 3. Behavior
- 3.1 Placement
- 3.2 Unmerged index entries
- 3.3 Conflict markers on added lines
- 3.4 Formatting, when the change is Rust
- 3.5 Evidence is behavioral
- 3.6 Unchanged
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.