Re: [PATCH/WIP 0/6] Detached HEADs in new worktrees considered harmful
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 26, 2016, 17:37 UTC
- Message-ID
- <xmqq60xbl6ej.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <cover.1456504190.git.git@drmicha.warpmail.net>
Michael J Gruber <git@drmicha.warpmail.net> writes:
Show 6 quoted lines
> Before someone loses their HEAD I should put this series out (again). > > 1/6 is a tiny documentation fix. > > 2/6 demonstrates that "git prune" in the main worktree loses HEADs in other > worktrees, and vice versa.
You do need to teach the reachability code to consider points that are outside refs/ (HEAD and index, at least; I also recall there were talks about per-worktree hierarchies in refs/?) as anchoring objects to the non-prunable part of the history.
The prune/fsck reachability code already knows to consider objects that are reachable only from the index as reachable, and I do not think "rev-list --all" is used to enumerate them for safekeeping (even when the worktree feature is not used). The reachability code that enumerates objects in the index and cache-tree needs to learn to peek into sibling worktrees' private objects, I would think, and I do not think the addition is a good match for rev-list.