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

Re: [PATCH/RFC v2] Squashed changes for multiple worktrees vs. submodules

From
Max Kirillov <max@max630.net>
Date
Dec 5, 2014, 06:32 UTC
Message-ID
<CAF7_NFQzPDF+7NS2VwopK8Oei=9NzWEAGM5fko-St5KvvmLa9A@mail.gmail.com>
In-Reply-To
<5480BEB9.8070109@web.de>
On Thu, Dec 4, 2014 at 10:06 PM, Jens Lehmann <Jens.Lehmann@web.de> wrote:
Show 5 quoted lines
> But I'd need to have separate settings for
> our CI server, e.g. to checkout the sources without the
> largish documentation submodule in one test job (=worktree)
> while checking out the whole documentation for another job
> building the setup in another worktree.

Currently I'm estimating approach when submodules which have .git file or directory inside are updated, and those which do not have it are not. I have added a config variable submodule.updateIgnoringConfigUrl (because usually the submodule.<name>.url is what turns on the update). It looks working, maybe I even add setting the variable when chackout --to is used.

> And if I understand the "checkout: reject if the branch is
> already checked out elsewhere" thread correctly, I won't be
> able to build "master" in two jobs at the same time?

You are alerady second person complaining about it, but I don't really see how this can be a problem. Make a branch 'master2', it's another 40 bytes.

> So two reasons against using multiple worktrees on our CI
> server to save quite some disk space :-(

My use is not to save space (working tree files often takes more than the repository itself), but for development, I have like 3-5 checkouts usually, which used to be local clones, but not having to keep synching them is really life changing.

Show 8 quoted lines
> Thanks. But I changed my mind about the details (now that I
> know about .git/config and multiple worktrees). I think you'd
> have to connect a .git directory in the submodule to the
> common git dir directly, as you cannot use the core.worktree
> setting (which could be different between commits due to
> renames) when putting it into <worktree>/.git/modules. And
> then you couldn't remove or rename a submodule anymore,
> because that fails when it contains a .git directory.
I need to think more about it.
Show 6 quoted lines
> Seems like we should put a "Warning: may do unexpected things
> when used with submodules" (with some examples about what might
> happen) in the multiple worktrees documentation. And I don't
> believe anymore that teaching submodules to use the common git
> dir makes that much sense after I know about the restrictions
> it imposes.

btw, I thought even about making it an error to add/remove/(de)initialize submodule not in the main working tree. But I'm afraid it would not be considered appropriate for merging.

-- 
Max
Previous: Jens LehmannNext: Jens Lehmann
Message 9 of 14 in “Squashed changes for multiple worktrees vs. submodules”
  1. Squashed changes for multiple worktrees vs. submodulesMax Kirillov, Nov 30, 2014
  2. Duy NguyenDec 1, 2014
  3. Max KirillovDec 1, 2014
  4. Jens LehmannDec 2, 2014
  5. Max KirillovDec 2, 2014
  6. Jens LehmannDec 4, 2014
  7. Duy NguyenDec 5, 2014
  8. Jens LehmannDec 6, 2014
  9. Max KirillovDec 5, 2014
  10. Jens LehmannDec 6, 2014
  11. Max KirillovDec 7, 2014
  12. Max KirillovDec 7, 2014
  13. Jens LehmannDec 8, 2014
  14. Max KirillovDec 8, 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.