Skip to content

v2.4.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 21:45
· 18 commits to main since this release
58c88c1

perch wt rm no longer makes you wait on the filesystem. Perch moves an eligible worktree to a hidden sibling on the same volume, confirms Git has dropped the registration, and hands the unlinking to a detached worker. Removing a large worktree returns as soon as the repository decisions are done, instead of after the roughly fifteen seconds it takes to unlink every file.

Reclamation records live in repository-local config, so a later wt command finishes work that was interrupted. Advisory locks keep a worker from reclaiming before deregistration and from traversing a tree another worker already holds. Unlicensed removals and initialized submodules stay behind Git's own guard; explicit --force licenses the fast path.

A named removal now resolves its target first and checks dirtiness only in that worktree, saving 0.10 to 0.46 seconds per unrelated worktree. A forced named removal skips the check entirely, since nothing reads its result. The interactive picker still assesses every worktree so its markers and risk legend stay complete.

Removal also shows a spinner for its full duration — the worktree name for a single selection, the count for a batch. Results and removed-hook output suspend the spinner so stderr stays readable and hook output keeps its order.

What's changed

Full changelog: v2.3.0...v2.4.0