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…

Octocat-spinner-32-eaf2f5

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
README
SubSucka
======================

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('http://test.com').

Benchmarks (Ruby Prototype)
======================

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

$>time git svn clone http://tarski.googlecode.com/svn/trunk/ t3
real	14m30.805s


ToDo
======================

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


Authors
======================

* Blake Mizerany <blake.mizerany@gmail.com>
* Scott Chacon <schacon@gmail.com>
Something went wrong with that request. Please try again.