revision.c: --all adds HEAD from all worktrees
Unless single_worktree is set, --all now adds HEAD from all worktrees. Since reachable.c code does not use setup_revisions(), we need to call other_head_refs_submodule() explicitly there to have the same effect on "git prune", so that we won't accidentally delete objects needed by some other HEADs. A new FIXME is added because we would need something like int refs_other_head_refs(struct ref_store *, each_ref_fn, cb_data); in addition to other_head_refs() to handle it, which might require int get_submodule_worktrees(const char *submodule, int flags); It could be a separate topic to reduce the scope of this one. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
419221c106
commit
d0c39a49cc
@ -9,6 +9,7 @@
|
||||
#include "cache-tree.h"
|
||||
#include "progress.h"
|
||||
#include "list-objects.h"
|
||||
#include "worktree.h"
|
||||
|
||||
struct connectivity_progress {
|
||||
struct progress *progress;
|
||||
@ -176,6 +177,7 @@ void mark_reachable_objects(struct rev_info *revs, int mark_reflog,
|
||||
|
||||
/* detached HEAD is not included in the list above */
|
||||
head_ref(add_one_ref, revs);
|
||||
other_head_refs(add_one_ref, revs);
|
||||
|
||||
/* Add all reflog info */
|
||||
if (mark_reflog)
|
||||
|
Reference in New Issue
Block a user