VCS Interoperability
David Barr
Jan 20, 2012
&
David Barr
Jan 20, 2012
&
Project at $JOB, March 2010 — 5 years, 22000 commits, 2.8GB
Complete and timely conversion impossible!
Maybe it's not just my repository?
Reached out to the git community for anecdotes
Came with a proposal in hand
Jokes, lol
Mapping Subversion history to git DAG non-trivial
Translator — Subversion dump to git fast-import
Data structure that maps between them and scales linearly
Independent of both projects
Merged svn-dump-fast-export into git-contrib as svn-fe
Although it 'uses only timeless fs concepts', verbs in Subversion dump format not clearly defined.
The obvious one was delete, the rest full of surprises.
Thus began a 3 month protocol reverse-engineering effort.
Extracting complete history from Subversion server is hard.
For large repositories, ask for a compressed dump.
Enter svnrdump, the product of Ram's GSoC 2010 project.
Protocol extensions for bi-directional communication
Complexity can be removed from the translator.
Applying Subversion binary deltas becomes straightforward.
In parallel to all this work, there were many improvements to the remote helper infrastructure which would ultimately be used to integrate the translator into the natural git flow.
Jérémie Nikaes' git-remote-mediawiki helped spur things along.
For more information or to get involved email b@rr-dav.id.au and consider cc'ing git@vger.kernel.org
Git Logo and Icon by Dylan Beattie distributed under Creative Commons Attribution-ShareAlike 3.0 Unported License.