Changes since v2 [1] is relatively small. It still needs nd/worktree-kill-parse-ref of course. [1] http://public-inbox.org/git/20170318101153.6901-1-pclouds@xxxxxxxxx/ diff --git a/Documentation/technical/api-ref-iteration.txt b/Documentation/technical/api-ref-iteration.txt index 37379d8337..c9e9a60dbd 100644 --- a/Documentation/technical/api-ref-iteration.txt +++ b/Documentation/technical/api-ref-iteration.txt @@ -32,11 +32,8 @@ Iteration functions * `for_each_glob_ref_in()` the previous and `for_each_ref_in()` combined. -* `head_ref_submodule()`, `for_each_ref_submodule()`, - `for_each_ref_in_submodule()`, `for_each_tag_ref_submodule()`, - `for_each_branch_ref_submodule()`, `for_each_remote_ref_submodule()` - do the same as the functions described above but for a specified - submodule. +* Use `refs_` API for accessing submodules. The submodule ref store could + be obtained with `get_submodule_ref_store(). * `for_each_rawref()` can be used to learn about broken ref and symref. diff --git a/refs.c b/refs.c index c39058adce..23e3607674 100644 --- a/refs.c +++ b/refs.c @@ -1208,11 +1208,6 @@ int refs_head_ref(struct ref_store *refs, each_ref_fn fn, void *cb_data) return 0; } -int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data) -{ - return refs_head_ref(get_submodule_ref_store(submodule), fn, cb_data); -} - int head_ref(each_ref_fn fn, void *cb_data) { return refs_head_ref(get_main_ref_store(), fn, cb_data); diff --git a/revision.c b/revision.c index dc32e99c54..79ce8a007f 100644 --- a/revision.c +++ b/revision.c @@ -1336,7 +1336,7 @@ void add_index_objects_to_pending(struct rev_info *revs, unsigned int flags) worktrees = get_worktrees(0); for (p = worktrees; *p; p++) { struct worktree *wt = *p; - struct index_state istate = {0}; + struct index_state istate = { NULL }; if (wt->is_current) continue; /* current index already taken care of */ Nguyễn Thái Ngọc Duy (12): revision.h: new flag in struct rev_info wrt. worktree-related refs revision.c: refactor add_index_objects_to_pending() revision.c: --indexed-objects add objects from all worktrees refs.c: refactor get_submodule_ref_store(), share common free block refs: move submodule slash stripping code to get_submodule_ref_store refs: add refs_head_ref() revision.c: use refs_for_each*() instead of for_each_*_submodule() refs: remove dead for_each_*_submodule() revision.c: --all adds HEAD from all worktrees files-backend: make reflog iterator go through per-worktree reflog revision.c: --reflog add HEAD reflog from all worktrees rev-list: expose and document --single-worktree Documentation/rev-list-options.txt | 8 ++ Documentation/technical/api-ref-iteration.txt | 7 +- reachable.c | 1 + refs.c | 105 ++++++++++----------- refs.h | 12 +-- refs/files-backend.c | 46 ++++++--- revision.c | 130 +++++++++++++++++++++----- revision.h | 1 + submodule.c | 2 + t/t1407-worktree-ref-store.sh | 30 ++++++ t/t5304-prune.sh | 37 ++++++++ 11 files changed, 274 insertions(+), 105 deletions(-) -- 2.11.0.157.gd943d85