This is what did the trick for me:
Create a svn repository dump file for later processing:
svnadmin dump /svn/old_repo > /tmp/svn/repository.dump
Use
svndumpfilter
to split dump file into separate dumps:svndumpfilter include /trunk/scr/folder1 --drop-empty-revs --renumber-revs --preserve-revprops < /tmp/svn/repository.dump > /tmp/svn/dump/folder1.dump
Create new empty svn repository
svnadmin create /tmp/svn/repos/folder1
Create root dir insde new empty svn repository. This is very important! I missed that step and almost gone mad due to some unclear svnadmin erros:
svn mkdir file:///tmp/svn/repos/folder1/trunk/src/folder1 --parents -m "Go"
Load new dump into empty svn repository:
svnadmin load /tmp/svn/repos/folder1 < /tmp/svn/dump/folder1.dump
Now some git magic. Note the
-T
arg - it's very handy. I used this to make my life easier and makefolder1
a root for git repo. If I didn't do that, I'd end up with a git repo structure like this:trunk/src/folder1/*
(that is what I had initially in my svn repo). And I wanted to just have thefolder1
as a root:git svn clone -T /trunk/src/folder1 file:///tmp/svn/repos/folder1 /new/path/folder1
And that was it. Steps 2-7 repeat for each directory for which you want to have a new git repository. I ended up writing a simple script for that.