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

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

  1. 122: A commit refuses an unresolved merge or an unformatted Rust change
  2. 1. Purpose
  3. 1.1 Two commits the boundary let through
  4. 1.2 What the boundary can see and what it cannot
  5. 2. Territory
  6. 3. Behavior
  7. 3.1 Placement
  8. 3.2 Unmerged index entries
  9. 3.3 Conflict markers on added lines
  10. 3.4 Formatting, when the change is Rust
  11. 3.5 Evidence is behavioral
  12. 3.6 Unchanged
  13. 4. Out of scope
  14. 5. Resolved decisions
  15. Verification

Frozen anchors

No frozen anchors declared.