Skip to content
This repository

Fast import project, written in Erlang and Ruby, for converting svn repos to git repos quickly.

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 ebin
Octocat-spinner-32 lib
Octocat-spinner-32 proto
Octocat-spinner-32 src
Octocat-spinner-32 www
Octocat-spinner-32 .gitignore
Octocat-spinner-32 ARCH
Octocat-spinner-32 README
Octocat-spinner-32 Rakefile
Octocat-spinner-32 rewrite_commits.rb
Octocat-spinner-32 sucka.sample

SubSucka sucks a SVN repository into Git in a distributed manner. 

Since jQuery has about 4000 commits, this will split up into 40 threads that each 
fetch 1/40th of the repo, then pull all the objects into one repo and rewrite all
of the commit objects properly with data obtained from 'svn log'.

When it works (ie: when SVN doesn't hang), it goes WAY faster than git-svn import.

Getting Started

 rake c                      # will compile and start the shell
 > subsucka_server:start().  # starts the master node
 > subsucka_slave:start().   # starts the slave node
 > subversion_import:import_uri('').

Benchmarks (Ruby Prototype)

$> time ruby subsucka.rb 
real	8m53.966s

$>time git svn clone t3
real	14m30.805s


* port to Erlang
* handle branches and tags
* use an author map
* deal with SVN hanging


* Blake Mizerany <>
* Scott Chacon <>
Something went wrong with that request. Please try again.