Re: [PATCH 0/4] Fix prune/gc problem with multiple worktrees
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 1, 2016, 16:06 UTC
- Message-ID
- <xmqqshwwzyee.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20160601104519.16563-1-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
Show 5 quoted lines
> This series makes sure that objects referenced by all worktrees are > marked reachable so that we don't accidentally delete objects that are > being used. Previously per-worktree references in index, detached HEAD > or per-worktree reflogs come from current worktree only, not all > worktrees.
I'll let this topic simmer on the list for now, instead of picking it up immediately to 'pu', as Michael in $gmane/296068 makes me wonder if we want to keep piling on the current "worktree ref iterations are bolted on" or if we want to first clean it up, whose natural fallout hopefully would eliminate the bug away.
Thanks.
Show 19 quoted lines
> The series deals with git-prune and git-gc specifically. I left out > "git rev-list". It shares the same problem because it will only > consider current worktree's HEAD, index and per-worktree reflogs. The > problem is I am not sure if we simply just change, say > --indexed-objects, to cover all indexes, or should we only do that > with "--all-worktrees --indexed-objects". I guess this is up for > discussion. > > Nguyễn Thái Ngọc Duy (4): > revision.c: move read_cache() out of add_index_objects_to_pending() > reachable.c: mark reachable objects in index from all worktrees > reachable.c: mark reachable detached HEAD from all worktrees > reachable.c: make reachable reflogs for all per-worktree reflogs > > reachable.c | 47 +++++++++++++++++++++++++++++++++++++++++------ > revision.c | 34 +++++++++++++++++++++++++++------- > revision.h | 7 ++++++- > t/t5304-prune.sh | 40 ++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 114 insertions(+), 14 deletions(-)