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. > > 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 - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html