Add a place for (not) sharing stuff between worktrees
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sat, 29 Sep 2018 19:10:23 +0000 (21:10 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 6 Oct 2018 23:21:18 +0000 (08:21 +0900)
commit8aff1a9ca5a266020fe5b1bd8c54228581e34530
treec787fa8cda7dfe83b7439d691ddd25204afd4ae9
parent5c79f74f0514a29fe182b0a442406105fb6f1660
Add a place for (not) sharing stuff between worktrees

When multiple worktrees are used, we need rules to determine if
something belongs to one worktree or all of them. Instead of keeping
adding rules when new stuff comes (*), have a generic rule:

- Inside $GIT_DIR, which is per-worktree by default, add
  $GIT_DIR/common which is always shared. New features that want to
  share stuff should put stuff under this directory.

- Inside refs/, which is shared by default except refs/bisect, add
  refs/worktree/ which is per-worktree. We may eventually move
  refs/bisect to this new location and remove the exception in refs
  code.

(*) And it may also include stuff from external commands which will
    have no way to modify common/per-worktree rules.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-worktree.txt
Documentation/gitrepository-layout.txt
path.c
refs.c
refs/files-backend.c
t/t0060-path-utils.sh
t/t1415-worktree-refs.sh [new file with mode: 0755]