[PATCH 3/3] git-checkout.txt: a note about multiple checkout support for submodules
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Jan 3, 2015, 09:41 UTC
- Message-ID
- <1420278087-14613-4-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1420278087-14613-1-git-send-email-pclouds@gmail.com>
The goal seems to be using multiple checkouts to reduce disk space. But we have not reached an agreement how things should be. There are a couple options.
- You may want to keep $SUB repos elsewhere (perhaps in a central place) outside $SUPER. This is also true for nested submodules where a superproject may be a submodule of another superproject.
- You may want to keep all $SUB repos in $SUPER/modules (or some other place in $SUPER)
- We could even push it further and merge all $SUB repos into $SUPER instead of storing them separately. But that would at least require ref namespace enabled.
On top of that, git-submodule.sh expects $GIT_DIR/config to be per-worktree, at least for the submodule.* part. Here I think we have two options, either update config.c to also read $GIT_DIR/config.worktree (which is per worktree) in addition to $GIT_DIR/config (shared) and store worktree-specific vars in the new place, or update git-submodule.sh to read/write submodule.* directly from $GIT_DIR/config.submodule (per worktree).
These take time to address properly. Meanwhile, make a note to the user that they should not use multiple worktrees in submodule context.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- Documentation/git-checkout.txt | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/Documentation/git-checkout.txt b/Documentation/git-checkout.txt index 52eaa48..72def5b 100644 --- a/Documentation/git-checkout.txt +++ b/Documentation/git-checkout.txt @@ -463,6 +463,9 @@ to `/path/main/.git/worktrees/test-next` then a file named `test-next` entry from being pruned. See linkgit:gitrepository-layout[5] for details. +Multiple checkout support for submodules is incomplete. It is NOT +recommended to make multiple checkouts of a superproject. + EXAMPLES --------
-- 2.2.0.84.ge9c7a8a