Skip to content

schacon/subsucka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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>

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published