Subject: Re: RFC: Making submodules "track" branches

From: Marc Branchaud <[email-masked]>
Date: Tue, 08 Jun 2010 15:32:23 -0400

On 10-06-08 12:09 PM, Ævar Arnfjörð Bjarmason wrote:
> On Tue, Jun 8, 2010 at 15:34, Marc Branchaud <[email-masked]> wrote:
>>
>> So, back to the issue at hand: Sometimes I want static (non-tracking)
>> submodules, and sometimes I want dynamic (tracking) submodules.  IMO, this
>> makes Ævar's proposed configuration-based approach impractical.  (Of course,
>> I'm not looking to replicate svn's externals...)
> 
> I'm proposing that you be able to configure how you want to handle
> submodules on a per-submodule basis.

Yes, and that's precisely the problem.  For a given submodule, sometimes it
should track a branch and sometimes it shouldn't.  Having to edit a
configuration to change that is impractical.

> The exact semantics that I proposed may be impractical for some
> reason, but the idea is that it'd be opt in. We'd perhaps have
> multiple approaches (via config) to submodules, instead of the current
> monolithic scheme.

Opting in or out can't just be a monolithic setting for each submodule.  A
submodule's branch tracking has to be on or off depending on the circumstances.

> So if you didn't want a svn:externals like "always track trunk"
> repository you'd just not set your superproject up to treat the
> submodule like that.

Yes, of course.

I guess what I'm saying is that duplicating svn's externals doesn't seem all
that useful to me and I'd rather see git do better.  I've no objection if
folks want to have such a feature, but to me it's not what "submodules
tracking branches" should be about.

>>  - It *may* be good enough to assume that matching branch names in the
>> super-repo and the submodules are in fact submodule-spanning branches.
> 
> That won't work for submodules that you don't control. I have a
> repository that includes a lot of foreign code, they have a lot of
> different names for their "main branch" between them. So it needs to
> be configurable in the superproject.

Good point.  I agree.

		M.