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

Re: [PATCH 0/4] Multiple worktrees vs. submodules fixes

From
Jens Lehmann <jens.lehmann@web.de>
Date
Oct 14, 2014, 17:09 UTC
Message-ID
<543D58D9.5060606@web.de>
In-Reply-To
<CACsJy8BUtkWKE+P_sHgpAY6wJ9tpzxZRtZHULiLoO=dGnBjkHQ@mail.gmail.com>
Am 14.10.2014 um 14:17 schrieb Duy Nguyen:
Show 7 quoted lines
> On Sun, Oct 12, 2014 at 12:13 PM, Max Kirillov <max@max630.net> wrote:
>> These are fixes of issues with submodules with use of multiple working
>> trees.
>
> I think the patches look fine from the nd/multiple-work-trees writer's
> perspective. I know too little about submodules to judge if this is
> the right way and not that way..
Sorry, I was too busy to review this work until now, but here we go:

If I understand multiple work trees correctly, everything except work tree local stuff is redirected into GIT_COMMON_DIR. This is a very cool feature I'd love to see on our CI server to reduce disk footprint and clone times, especially for submodules!

But I can't see how that can work by just sharing the modules directory tree, as that contains work tree related files - e.g. the index - for each submodule. AFAICS sharing them between work trees will work only if the content of the modules directory is partly present in GIT_DIR - for work tree related files - and only the common stuff is taken from GIT_COMMON_DIR (Or did I just miss the magic that already does that?). And I didn't try to wrap my head around recursive submodules yet ...

Until that problem is solved it looks wrong to pass GIT_COMMON_DIR into submodule recursion, I believe GIT_COMMON_DIR should be added to the local_repo_env array (and even if it is passed on later, we might have to append "/modules/<submodule_name>" to make it point to the correct location).

But maybe I'm missing something?
Previous: Duy NguyenNext: Junio C Hamano
Message 7 of 24 in “Multiple worktrees vs. submodules fixes”
  1. 0/4 Multiple worktrees vs. submodules fixesMax Kirillov, Oct 12, 2014
  2. 1/4 checkout: do not fail if target is an empty directoryMax Kirillov, Oct 12, 2014
  3. 2/4 submodule refactor: use git_path_submodule() in add_submodule_odb()Max Kirillov, Oct 12, 2014
  4. 3/4 git-common-dir: make "modules/" per-working-directory directoryMax Kirillov, Oct 12, 2014
  5. 4/4 path: implement common_dir handling in git_path_submodule()Max Kirillov, Oct 12, 2014
  6. Duy NguyenOct 14, 2014
  7. Jens LehmannOct 14, 2014
  8. Junio C HamanoOct 14, 2014
  9. Max KirillovOct 14, 2014
  10. Jens LehmannOct 14, 2014
  11. Max KirillovOct 14, 2014
  12. Duy NguyenOct 15, 2014
  13. Jens LehmannOct 15, 2014
  14. Max KirillovOct 16, 2014
  15. Jens LehmannOct 19, 2014
  16. Max KirillovOct 20, 2014
  17. Duy NguyenNov 3, 2014
  18. Jens LehmannNov 3, 2014
  19. Max KirillovNov 3, 2014
  20. Max KirillovOct 14, 2014
  21. Duy NguyenOct 15, 2014
  22. Junio C HamanoOct 15, 2014
  23. Duy NguyenOct 17, 2014
  24. Jens LehmannOct 19, 2014

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.