Re: help moving boost.org to git
- From
Eric Niebler <eric@boostpro.com>
- Date
- Jul 6, 2010, 18:29 UTC
- Message-ID
- <4C33760D.9000404@boostpro.com>
- In-Reply-To
- <AANLkTikfTFw_UdV1ia58MbWxH4h8TJAr-Y5WPvlXCjeJ@mail.gmail.com>
On 7/6/2010 2:13 PM, Avery Pennarun wrote: <snip>
Show 5 quoted lines
> 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.)
Show 6 quoted lines
> 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