Repository navigation
worktree: release frees slots with a missing lease record or directory - #9759
Conversation
|
Review: changes requested CI: the only analysis failure is the
🤖 Generated with Claude Code |
closes #9755) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xut2hwESun1HL2eSVd1d5B
…holder Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Xut2hwESun1HL2eSVd1d5B
50fcc2c to
873da87
Compare
|
Fixed: (1) gone_slot now runs worktree unlock before prune, with a test releasing a free slot whose directory is gone followed by ops::add reusing it; (2) orphan_record no longer claims the releaser as holder (holder unknown), so the holder check stays: a record-less slot needs a clean pushed tree or --force, with a test; (3) stated the gone-directory behaviour in the PR description. Rebased on origin/main; dx_worktree_test passes. 🤖 Generated with Claude Code |
|
Review: approve All three earlier findings are fixed at head 873da87. CI is still pending, with no failure so far.
The branch is 0 behind main and touches only ops.rs and tests.rs. I found no lines that main deleted and this branch re-adds. 🤖 Generated with Claude Code |
Closes #9755
release now frees a slot whose checkout is registered but whose lease record is missing (the usual dirty/unpushed checks still run), and returns success when the slot directory is already gone instead of failing with 'cannot start git'. Tests added for both. Ran //cli/worktree:dx_worktree_test; no nested-Bazel or consumer tests run.
A slot whose directory is gone is dropped before the lease-holder check, so any session can drop another session's record; nothing is left to lose there. A missing record leaves the holder unknown, so releasing needs a clean, pushed checkout or --force.
🤖 Generated with Claude Code
https://claude.ai/code/session_01Xut2hwESun1HL2eSVd1d5B