]> git.ipfire.org Git - thirdparty/git.git/commit - reachable.c
revision.c: --all adds HEAD from all worktrees
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Wed, 23 Aug 2017 12:36:59 +0000 (19:36 +0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 24 Aug 2017 21:56:43 +0000 (14:56 -0700)
commitd0c39a49ccb5dfe7feba4325c3374d99ab123c59
tree26324606aadeab067d1d983de881a392488fac8e
parent419221c1065981311b1a0f4a469d4d8a9ea09f54
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>
reachable.c
revision.c
submodule.c
t/t5304-prune.sh
worktree.c
worktree.h