Repository navigation
Own partial effects of failed Worktree acquisition - #502
Merged
Merged
Conversation
Git 2.55 runs automatic worktree pruning after fetch, deleting the missing-gitdir fixture before acquisition can inspect it. Mark the damaged registration locked using Git's normal mechanism so the test reaches the intended refusal and preserves its existing assertions across all four acquisition paths. Validated with Git 2.43 and 2.55; cargo fmt --check, cargo clippy --all-targets -- -D warnings, full cargo test, and cargo nextest run (1,373 passed).
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Worktree acquisition owns partial local effects for fresh Runs, Continuations and detached Architecture reviews.
Closes #501
Evidence
After: Real-Git acquisition regressions cover all four acquisition cases, tracked/staged/untracked/ignored work, hook commits, locks, pre-existing paths and symlinks, failed inspections/removals, initialized submodules, ref movement before deletion, and SIGINT/SIGTERM/SIGHUP. Hidden tracked work survives assume-unchanged, skip-worktree,
core.ignoreStat, and fsmonitor.After: The command regression verifies that no session starts, the Claim finishes and is released, and correcting the hook allows a successful retry.
Worktree::create_fresh,Worktree::continue_existing,ReviewWorktree::create, and the command's Run interface, with real local Git, temporary origin and hooks.cargo fmt --checkandcargo clippy --all-targets -- -D warningspassed. Fullcargo test: 1,373 passed, 0 failed, 1 ignored across 39 test targets.Unaddressed findings
Standards
Spec
None. The identified Spec finding was addressed and verified.
Merge Danger
Door: two-way
Local acquisition behavior can be reverted; no persisted format or origin behavior changes.
Blast Radius: Worktrees
All three acquisition paths share recovery. Uncertain resources remain available for the Day shift, with their path, branch and known head reported. Successful lifetime cleanup and Failed run preservation retain their existing behavior.
Built with codex · gpt-6.1-sol · xhigh