On 7/6/2010 2:13 PM, Avery Pennarun wrote: <snip> > Specifically, with a tool like git-subtree, it only really works if a > particular subproject has always existed in the same subdir of your > repo since it started. If the subdir was ever renamed, or if some of > the files were previously part of one subdir but then moved around, > git-subtree doesn't (currently) know how to deal with that. Bah! Yes, directories have moved around in our svn repro. :-( In particular, we've had cases where libraries in boost began life as sub-projects of a different library and then got spun off. > git-filter-branch can do anything you want, but you have to teach it > how, which is obviously even *more* error prone. I can only imagine. > Things are also a little messy if you have some kind of top-level > directory with build infrastructure shared by all the subdirs. Does > the top-level Makefile have a list of the subdirs it needs to build? Bah! Yes, the build, the docs and the test infrastructure all currently share files across our submodules-to-be. Surely other projects have encountered this problem before, right? (KDE, I'm looking in your direction.) > If so, there's no way to extract only a subset of true history that > will still build correctly - it'll be looking for directories that you > explicitly removed. You could update the Makefiles programmatically > in every single revision, but that's starting to get extremely > messy... and your history stops representing what *real life* really > looked like at the time. I see what you mean. > If your subdirs haven't been moving around (which sounds like that > might be the case for you), and you don't have any top-level files > that you care about, rewriting might turn out to be straightforward. > You could also make the decision on a subdir-by-subdir basis, I guess. More evidence that the fancy filter/branch/subtree/svn2git/whatever utilities aren't going to get us where we'd like to be. A simple conversion and grafts look like the only workable approach. > Have fun, Having heaps! Thanks, -- Eric Niebler BoostPro Computing http://www.boostpro.com -- 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