Re: How do I manage this setup with git-svn and/or git remotes?
- From
Linus Torvalds <torvalds@linux-foundation.org>
- Date
- Aug 17, 2007, 18:53 UTC
- Message-ID
- <alpine.LFD.0.999.0708171142510.30176@woody.linux-foundation.org>
- In-Reply-To
- <86d4xmxbjf.fsf@lola.quinscape.zz>
On Fri, 17 Aug 2007, David Kastrup wrote:
> > 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".
Sure. And that's different from any git "branch" exactly how?
So you'd have different branches in the superproject - the way you always have when you have two copies of a git project. And then you merge between the two at will.
> With Subversion, I can actually merge files in different projects of > the repository even when they are in different directory levels. Of > course, since Subversion does not track any merge info, that is not an > accomplishment.
Right. Git can do that too. It's called "patches".
> And that is the problem here: in this case it does not make sense to > see it as a separate project, and in particular, it needs to be in > synch with the tags/branches of the superproject, and particularly > while I am using git-svn.
I do agree that the "git svn" interaction may end up making it unworkable, if only because git-svn simply doesn't know/understand about submodules. But the submodule *would* be well-specified by the tags and branches in the superproject, so that shouldn't be a problem in itself.
Show 13 quoted lines
> > Another alternative is to do what git has long done with "gitk": you > > can maintain a separate project and just merge it directly into > > another git project, and it works fine that way, but it gets > > impossible to merge back and forth between the two projects (you can > > only merge one way: make all the major changes in the "dsp" project, > > and then you can just merge it into the project that uses it (but if > > you fix things in the bigger project, you can't merge the fixes > > back, you'll have to export the fixes as patches and do them in the > > "dsp" tree). > > Well, that would be at least quite handy for propagating upstream dsp > fixes into project/great. How do I merge one project into a > _subdirectory_ of another one?
There's a special "subtree" merge that does exactly that: it basically is the normal recursive merge, except it merges into a subtree. I think that's how Junio does the "git-gui" merges. Junio?
Linus