chore(worktree): keep Claude Code worktrees out of the working tree - #8
Conversation
Worktrees used to sit beside the checkout as <repo>-<slug>, which put them in the workspace directory next to the real repositories and left EnterWorktree unusable, since that tool writes to a fixed .claude/worktrees/<slug>. Pattern proven on fluttersdk/magic_starter#124.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. The ignore rule does exactly what the description claims and nothing else - no findings. The pattern is correctly scoped. I also checked the two things a nested worktree could plausibly break here, and neither applies:
TestsNothing covers a Checks I ran
|
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Since my last review the only change is comment text above the same ignore rule; ignore behaviour is unchanged, but the new comment contains a typo and a claim I could not reproduce. Minor
TestsNothing covers a Checks I ran
|
The comment claimed plain -xdf wipes a live worktree because its .git is a file rather than a directory. Measured on a scratch repo: the dry run prints "Skipping repository .claude/worktrees/slug", the worktree survives -xdf with its untracked files intact, and only -xdff removes it and leaves the registration prunable. The guard keys on the gitlink, not on the form of .git. Also splits the stray # that joined the two comment blocks.
|
Note Kodizm (AI-generated). May contain mistakes; verify before acting. Both findings from my last review are fixed, and the corrected comment now matches what git actually does - no findings. Since the last review the only change is the comment block above the same ignore rule. The stray
The ignore rule itself is byte-identical to what I verified before; only its line number moved. TestsNothing covers a Checks I ran
|
What
.gitignore: ignore.claude/worktrees/(only that subdirectory; the rules under.claude/stay tracked).Why
Worktrees were opened beside the checkout as
<repo>-<slug>, so they landed in the workspace directory next to the real repositories, and Claude Code'sEnterWorktreecould not be used at all: it writes to a fixed.claude/worktrees/<slug>. With them inside the repository, git has to be told to ignore them.No
.worktreeincludehere, because this repository keeps nopubspec_overrides.yaml; there is nothing gitignored that a worktree would need. Sibling repositories that do carry one get that file too, see fluttersdk/magic_starter#124.Testing
Config only. No Dart, YAML or
lib/file is touched, so analyze, format and test have nothing to say about this diff.