Re: What is the reason behind not hiding git worktrees from git?
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 1, 2025, 18:54 UTC
- Message-ID
- <xmqq3482312r.fsf@gitster.g>
- In-Reply-To
- <E311F5BA-F88C-4C3D-88B5-F8508B106D41@gmail.com>
Ben Knoble <ben.knoble@gmail.com> writes:
Show 6 quoted lines
>> The impact is that the list of worktrees would have to be read to get >> status. As status is not particularly cheap operation in any case I >> would expect the problem to be minor. > > I believe status information is used for the shell prompt info, so > performance hits there have a cost.
Sure, but an embedded git-controlled working tree _should_ be flagged as an untracked entity, _unless_ it is ignore'd, no?
That is how you would add a new submodule to your project after all. So, if you want to ignore them, just add them to .git/info/exclude or something, perhaps?
Why do people even want to have such a layout, unless they want to make it a submodule (or deliberate subdirectory that is unrelated)?
-+- README.md (your own branch, probably on main) | +-+ worktree-foo (worktree checkout of branch foo) | | | +-- README.md (a slight variant of the file in foo) | +-+ worktree-bar (worktree checkout of branch bar) | | | +-- README.md (a slight variant of the file in bar) | +-+ worktree-baz (worktree checkout of branch baz) | | | +-- README.md (a slight variant of the file in baz)
Wouldn't it be easier to manage if you had this instead?
-+ | +-+ my-project (the primary worktree, probably on main) | | | +-- README.md (the file from branch main) | +-+ worktree-foo (worktree checkout of branch foo) | | | +-- README.md (a slight variant of the file in foo) | +-+ worktree-bar (worktree checkout of branch bar) | | | +-- README.md (a slight variant of the file in bar) | +-+ worktree-baz (worktree checkout of branch baz) | | | +-- README.md (a slight variant of the file in baz)
That way, you can go up to the umbrella directory and ...
$ cd ..
$ ls
my-project worktree-foo worktree-bar worktree-baz
$ grep -e HowTo */README.md... do things you would do collectively to these worktrees with the primary worktree included as well.