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

Re: Subtree with submodule inside?

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Aug 6, 2014, 22:08 UTC
Message-ID
<20140806220832.GA12427@google.com>
In-Reply-To
<53E28CAB.4040800@web.de>
Jens Lehmann wrote:
> There were thoughts about having "git branch" optionally create a
> branch in the submodule too. But in a lot of real world scenarios
> that won't help because the same branch name won't necessarily make
> sense in superproject and submodule at the same time

So, here is how I think git could behave to make that into a non-issue:

 1. Commands like 'git checkout' able to recurse into submodules, so
    when you switch branches in the superproject, the files in the
    submodule are at the right commit, too.
    Luckily your series does that.  Ronnie was helping me with thoughts
    about how to simplify the patch a little, and I'd be happy to talk
    with or coordinate with anyone else interested (by email or on IRC
    --- I am jrnieder on Freenode).
 2. Submodules aware of their superproject and of the parent's branches.
    In other words, submodules would act as thought under refs/ they
    had a symlink
	parent -> ../../../refs
    So you could do
	git checkout --recurse-submodules master
	cd path/to/submodule
	git checkout parent/heads/next
    This would avoid danger from "git gc" in submodules and would
    get rid of most of the motivation for named branches in the
    submodule, I'd think.
 3. That's it.
Sensible?

Thanks, Jonathan

Previous: Jens LehmannNext: Junio C Hamano
Message 5 of 8 in “Subtree with submodule inside?”
  1. Robert DaileyAug 6, 2014
  2. Junio C HamanoAug 6, 2014
  3. Robert DaileyAug 6, 2014
  4. Jens LehmannAug 6, 2014
  5. Jonathan NiederAug 6, 2014
  6. Junio C HamanoAug 6, 2014
  7. Jonathan NiederAug 6, 2014
  8. Heiko VoigtAug 7, 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.