git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Mark LevedahlNext: Mark Levedahl
Message 5 of 14 in “nd/multiple-work-trees updates”
  1. 0/3 nd/multiple-work-trees updatesNguyễn Thái Ngọc Duy, Jan 3, 2015
  2. 1/3 checkout: pass whole struct to parse_branchname_arg instead of individual flagsNguyễn Thái Ngọc Duy, Jan 3, 2015
  3. 2/3 checkout: add --ignore-other-wortreesNguyễn Thái Ngọc Duy, Jan 3, 2015
  4. Mark LevedahlJan 5, 2015
  5. 3/3 git-checkout.txt: a note about multiple checkout support for submodulesNguyễn Thái Ngọc Duy, Jan 3, 2015
  6. Mark LevedahlJan 5, 2015
  7. Max KirillovJan 6, 2015
  8. Junio C HamanoFeb 12, 2015
  9. Jens LehmannFeb 12, 2015
  10. Mark LevedahlFeb 13, 2015
  11. Dennis KaarsemakerFeb 13, 2015
  12. Duy NguyenFeb 13, 2015
  13. Ephrim KhongMar 18, 2015
  14. Duy NguyenMar 18, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.