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
@ -1,6 +1,8 @@
|
||||
#ifndef WORKTREE_H
|
||||
#define WORKTREE_H
|
||||
|
||||
#include "refs.h"
|
||||
|
||||
struct worktree {
|
||||
char *path;
|
||||
char *id;
|
||||
@ -70,6 +72,12 @@ extern void free_worktrees(struct worktree **);
|
||||
extern const struct worktree *find_shared_symref(const char *symref,
|
||||
const char *target);
|
||||
|
||||
/*
|
||||
* Similar to head_ref() for all HEADs _except_ one from the current
|
||||
* worktree, which is covered by head_ref().
|
||||
*/
|
||||
int other_head_refs(each_ref_fn fn, void *cb_data);
|
||||
|
||||
int is_worktree_being_rebased(const struct worktree *wt, const char *target);
|
||||
int is_worktree_being_bisected(const struct worktree *wt, const char *target);
|
||||
|
||||
|
Reference in New Issue
Block a user