Subject: Re: Breaking up repositories

From: Josh Triplett <[email-masked]>
Date: Thu, 31 May 2007 08:53:58 -0700

Jason Sewall wrote:
> I recently imported my subversion repo with git-svn and I'm curious
> what the best way to break up the monolithic repo (my many disparate
> projects from my single svn repo) into individual git repos of their
> own.
> 
>  I'm still trying to get a grasp on the considerable git toolbox and I
> can't seem to find the functionality I'm describing, but I'm sure it
> exists - I heard Linus talk about it in that Google talk on git!

In the specific case of git-svn, you can probably give git-svn the
appropriate paths to import each project separately; that may do what you
want, depending on your repository layout.

In the general case, if you want to split a subtree of a git repo into a git
repo, you want git-split, by Jamey Sharp and I:
<http://people.freedesktop.org/~jamey/git-split>
From a copy of the git repo you want to split, just run "git-split subdir",
optionally with a newest and oldest commit, and it will output the sha1 of
the new top commit for use as the new branch ref.  Remove all other
branches, reflogs, and other references to the old commits, and use prune
or gc to get rid of old objects.  Repeat as desired for other subdirs.

We really need to fix some things in git-split and get it merged into git.

- Josh Triplett