Re: Nesting a submodule inside of another...
- From
Jens Lehmann <jens.lehmann@web.de>
- Date
- Jul 13, 2011, 21:20 UTC
- Message-ID
- <4E1E0C27.60903@web.de>
- In-Reply-To
- <CAEBDL5U0F+QaqhW92i-s82-C9fj2knp6JPNtNvgdJY68kRYwWQ@mail.gmail.com>
Am 13.07.2011 03:21, schrieb John Szakmeister:
Show 10 quoted lines
> On Tue, Jul 12, 2011 at 3:23 PM, Jens Lehmann <Jens.Lehmann@web.de> wrote: >> Submodules are repositories of their own, so their work tree is outside >> the superproject's work tree. You're attempting to have a submodule of >> the superproject inside another submodule of the superproject, but this >> won't work because it does not live in the superproject's work tree (as >> that doesn't include submodules and their subdirectories). > > I guess I still don't see how that's a problem. It seems to me that > for the superproject the ignore rule needs to be: > ignore framework1, except framework1/module
But that would mean the superproject would have to scan framework1's work tree for changes too, which is conflicting with the idea that each submodule is a repo of it's own, so that won't fly.
> And then it could check its status. Of course, framework1 would > somehow need to know to ignore it... and I'm not sure how that can be > communicated.
It can't be communicated, as submodules are unaware of their superproject. And adding module manually to framework1's .gitignore is just a problem waiting to happen. Having a file or submodule in the work tree of one git repository being referenced by another is just asking for trouble ...
Show 8 quoted lines
>> But at least since 1.6.2 git should issue a meaningful error message. >> With current master I get: >> >> $ git add sub/file >> fatal: Path 'sub/file' is in submodule 'sub' > > Sorry, I wasn't trying to do a 'git add'. I was trying to do a 'git > submodule add'.
Ok.
Show 8 quoted lines
>> What version are you using? > > I'm using 1.7.6rc3. I updated to the latest trunk and still get the same error: > > :: git submodule add $PWD/../c b/c > The following path is ignored by one of your .gitignore files: > b/c > Use -f if you really want to add it.
You're right, the error message of "git submodule add" should be better here.