• Junio C Hamano's avatar
    Merge branch 'nd/prune-in-worktree' · 8a044c7f
    Junio C Hamano authored
    "git gc" and friends when multiple worktrees are used off of a
    single repository did not consider the index and per-worktree refs
    of other worktrees as the root for reachability traversal, making
    objects that are in use only in other worktrees to be subject to
    garbage collection.
    
    * nd/prune-in-worktree:
      refs.c: reindent get_submodule_ref_store()
      refs.c: remove fallback-to-main-store code get_submodule_ref_store()
      rev-list: expose and document --single-worktree
      revision.c: --reflog add HEAD reflog from all worktrees
      files-backend: make reflog iterator go through per-worktree reflog
      revision.c: --all adds HEAD from all worktrees
      refs: remove dead for_each_*_submodule()
      refs.c: move for_each_remote_ref_submodule() to submodule.c
      revision.c: use refs_for_each*() instead of for_each_*_submodule()
      refs: add refs_head_ref()
      refs: move submodule slash stripping code to get_submodule_ref_store
      refs.c: refactor get_submodule_ref_store(), share common free block
      revision.c: --indexed-objects add objects from all worktrees
      revision.c: refactor add_index_objects_to_pending()
      refs.c: use is_dir_sep() in resolve_gitlink_ref()
      revision.h: new flag in struct rev_info wrt. worktree-related refs
    8a044c7f
reachable.c 4.84 KB