On Mon, Jul 5, 2010 at 4:16 PM, Eric Niebler <eric@xxxxxxxxxxxx> wrote: > I have a question about the best approach to take for refactoring a > large svn project into git. The project, boost.org, is a collection of > C++ libraries (>100) that are mostly independent. (There may be > cross-library dependencies, but we plan to handle that at a higher > level.) After the move to git, we'd like each library to be in its own > git repository. Boost can then be a stitching-together of these, using > submodules or something (opinions welcome). It's an old project with > lots of history that we don't want to lose. The naive approach of simply > forking into N repositories for the N libraries and deleting the > unwanted files in each is unworkable because we'll end up with all the > history duplicated everywhere ... >100 repositories, each larger than 100Mb. > > So, what are the options? Can I somehow delete from each repository the > history that is irrelevant? Is these some feature of git I don't know > about that can solve this problem for us? > You're probably looking for git-filter-branch. This tool can be used with the --subdirectory-filter option to filter out a specific subdirectory to it's own branch. Or if the project isn't split into subdirectories, you can use the --tree-filter option to filter specific files if you want. See http://www.kernel.org/pub/software/scm/git/docs/git-filter-branch.html for details -- Erik "kusma" Faye-Lund -- 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