Expand description
§8 anvil git plumbing — the change worktree and the SEAL.
Anvil is the narrow seam the op lifecycle (crate::lifecycle)
drives: make the change worktree off the anvil, SEAL (commit + integrate
the worktree onto the anvil, atomically), un-seal a post-abort (§14
tier-1), and tear the worktree down. Git is the real implementation,
shelling out to git against one checkout; the lifecycle is
unit-tested against a fake while Git is tested here on throwaway repos.
Topology: the checkout has the anvil branch at commit T.
A change worktree is a DETACHED worktree created at T; balls + plugins
edit it, then SEAL commits it to C (parent T) and fast-forwards the
anvil onto C in one act. A post-seal abort git reset --hards the
anvil back to T — local and reversible, because core never pushes (§14).
Structs§
Traits§
- Anvil
- The git acts the §8 seal needs, behind a seam so the lifecycle can be tested without a real repo. Each method is one atomic git act on the anvil.