OSDN Git Service

Merge branch 'nd/prune-in-worktree'
authorJunio C Hamano <gitster@pobox.com>
Tue, 19 Sep 2017 01:47:53 +0000 (10:47 +0900)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Sep 2017 01:47:53 +0000 (10:47 +0900)
"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

1  2 
reachable.c
refs.c
refs/files-backend.c
revision.c
submodule.c
worktree.c

diff --cc reachable.c
@@@ -9,7 -9,7 +9,8 @@@
  #include "cache-tree.h"
  #include "progress.h"
  #include "list-objects.h"
 +#include "packfile.h"
+ #include "worktree.h"
  
  struct connectivity_progress {
        struct progress *progress;
diff --cc refs.c
Simple merge
Simple merge
diff --cc revision.c
@@@ -19,7 -19,7 +19,8 @@@
  #include "dir.h"
  #include "cache-tree.h"
  #include "bisect.h"
 +#include "packfile.h"
+ #include "worktree.h"
  
  volatile show_early_output_fn_t show_early_output;
  
diff --cc submodule.c
Simple merge
diff --cc worktree.c
Simple merge