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

Re: nested git repos (not submodules)

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 10, 2012, 04:16 UTC
Message-ID
<7vd39ns4py.fsf@alter.siamese.dyndns.org>
In-Reply-To
<jh1vo3$7af$1@dough.gmane.org>
"Neal Kreitzinger" <neal@rsss.com> writes:
> In the worktree of a particular git repo, the user has made a subdir 
> (worktree/subdir) of the worktree (worktree/.git) its own repo 
> (worktree/subdir/.git).  Is there a danger of worktree/.git and 
> worktree/subdir/.git crossing wires?  

The repository controlled by worktree/.git should behave as if subdir/ does not exist, except that obviously the project cannot have a regular file "subdir" in it. When you chdir to worktree/subdir, everything in there should behave as if worktree/.git directory does not exist.

At least that is the design, and it indeed is how I arrange my primary working tree (I have two "clones" at /git/git.git/ and /git/git.git/Meta, and the latter has a checkout of the "todo" branch), so I would make noises about any breakage for such a layout.

I do not know offhand if an attempt to add files inside subdir to the repository controlled by worktree/.git is always correctly prohibited by the code, though, as our code often forgets to error out "stupid user mistakes", and running "git add subdir/bar" when in worktree/ falls into that category.

And the use of that layout predates the submodules by a large margin. In fact, when people suggest use of submodules when the toplevel and the sublevel do not even need tight version dependencies, some of their use cases might be better supported by using the simply-nested layout without even letting the toplevel be aware of the sublevel.

Previous: Neal KreitzingerNext: Neal Kreitzinger
Message 4 of 5 in “nested git repos (not submodules)”
  1. Neal KreitzingerFeb 10, 2012
  2. Andrew ArdillFeb 10, 2012
  3. Neal KreitzingerFeb 10, 2012
  4. Junio C HamanoFeb 10, 2012
  5. Neal KreitzingerFeb 10, 2012

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.