To get in the right frame of mind, don't think of exporting your entire svn repository, but rather export project by project. Export the trunk of your projects and forget about the branches. If you need data from the branches, merge it first.
jdoe = John Doe <jdoe@example.com>
git config --global svn.authorsfile ~/.git-svn-users
git svn clone svn://repo/path/to/myproject myproject_tmp --no-metadata
20592274 [main] perl 3584 C:\cygwin\bin\perl.exe: *** fatal error - unable to remap C:\cygwin\bin\cygserf-0-0.dll to same address as parent: 0xA80000 != 0x1390000 20597997 [main] perl 3572 fork: child 3584 - died waiting for dll loading, errno 11
git clone --bare myproject_tmp /path/to/shared/git/myproject.git
rm -Rf myproject_tmp
git clone /path/to/shared/git/myproject.git
If you are lucky (no errors), steps 1-5 can be automated with a simple bash loop:
for file in {project1,project2,project3} do git svn clone file:///path/to/svn/repo/project/${file} ${file}_tmp --no-metadata \ && git clone --bare ${file}_tmp /path/to/git/shares/${file}.git \ && rm -Rf ${file}_tmp/ \ && git clone /path/to/git/shares/${file}.git/ done
mkdir myproject_tmp cd myproject_tmp
git svn init http://host/path/to/your/svn/repo/project/trunk --no-metadata
git svn clone file:///cygdrive/h/svn/project/trunk myproject_tmp --no-metadata
git config svn.authorsfile ~/Desktop/users.txt
git svn fetch
cd .. git clone myproject_tmp myproject
rm -Rf myproject_tmp cd myproject git remote rm origin
cd /path/to/shared/dir mkdir project.git cd project.git git init --bare --shared cd /path/to/myproject git push /path/to/shared/dir/myproject.git refs/heads/master (you can push other refs if you want at this point, if they should be public) (then I usually git clone from this shared repo for good measure to make sure it all works; your merge paths will work by default too)