Subject: Re: How do I manage this setup with git-svn and/or git remotes?

From: Jakub Narebski <[email-masked]>
Date: Sun, 19 Aug 2007 01:37:21 +0200

David Kastrup wrote:

> Linus Torvalds <[email-masked]> writes:
> 
>> On Fri, 17 Aug 2007, David Kastrup wrote:
>>> 
>>> Now is there any chance to set up a git structure that will me
>>> allow to let _git_ perform merges between the standalone dsp
>>> project and the part that has started off as a copy of it in a
>>> subdirectory from projects/great, so that I have a merge history in
>>> my git mirror?
>>
>> Yes. That's what git "submodule" support is all about.  You could
>> create that "dsp" project as its own git project, and then include
>> it within the bigger project as a submodule. Then, that "dsp" thing
>> is really a totally independent git project in its own right, with
>> git support for just "tying" it into the superproject.
> 
> But it isn't an independent git project: the superproject has its
> _own_ copy of dsp, with its _own_ specific commits and fixes that are
> not supposed to ever end up in the dsp "mothership".  There are
> sometimes cross merges, but the stuff in the "dsp" subdirectory of
> "great" is maintained completely together with the branches of
> "great": tags, branches and all.

Independent git project means independent clone of "dsp" repository,
perhaps a fork of "dsp" repository with some (superproject) specific
commits. Which is attached as subritectory of superproject.
 
> But I would like to be able to merge this _subdirectory_ with branches
> from the "mothership" dsp from which it was originally copied.

You would be able to, both from "mothership" to "submodule", and from
"submodule" (perhaps only some selected commits on 'maint' branch) to
"mothership".

Putting files of "dsp" project directly in superproject and merging from
"mothership" using 'subtree' merge strategy as mentioned allows only for
one direction (well, except for sending patches).

-- 
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git