Subject: Re: [RFC GSoC 2009: git-submodule for multiple, active developers on active trees]

From: Andreas Ericsson <[email-masked]>
Date: Wed, 01 Apr 2009 08:26:15 +0200

Johannes Schindelin wrote:
> Hi,
> 
> On Tue, 31 Mar 2009, P Baker wrote:
> 
>> I'll paraphrase to see if I understand your points:
>>
>> *Moving objects from submodule .git directories into the base .git/
>> directory would protect the submodules and is a good idea.
> 
> No, I did not say that.
> 
> I said that moving submodules' working directory need to protected when 
> renaming/deleting submodules.
> 
> Even worse, I think that moving the .git/ directory into the 
> superproject's .git/ would be at least quite a bit awkward in the nested 
> case.
> 

Not necessarily. The .git directory of a submodule need not be named .git
inside the superprojects .git directory. I could well imagine something
like this:

.git/modules/submod(.git)/modules/nested-submod(.git)

For deeply nested submodules (eurgh), one might run into path length limit
issues though. The point is that we will need some library-like function
to find the repository of the submodule. Once that's done, the same call
with a different $gitdir should be able to find the nested submodule.

I'm also thinking of libgit2 here, where each repository will be
represented as a struct that must be passed to the various $gitdir
searching functions. This is necessary to allow a single program to access
multiple repositories, and the .git/modules scheme makes supporting
submodules in the library quite trivial.

-- 
Andreas Ericsson                   [email-masked]
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.