Search code examples
svngitmercurialdvcsbazaar

How to migrate from a complicated subversion repository to a distributed version control system?


Let's suppose we have a subversion repository which looks like

/original/0.1
/original/0.2
/variantA/trunk
/variantA/branches/who/branch_for_xxx
/variantA/branches/she/branch_for_yyy
/variantB/trunk
/variantB/branches/who/branch_for_zzz
(... 30 or 40 alike)

where variantA and variantB are forks of the original software.

I am looking for a method for migrating this repository into a distributed version control system: a method

  • not necessarily wigh a single command
  • for any one of well-known distributed version control systems
  • making the dvcs think of them branches: /official/{0.1,0.2} trees, /variantA/trunk tree, ...
  • making the dvcs aware of the inheritance relation of those trees

Solution

  • If you consider Git as a possible DVCS candidate, the ruby script svn2git does what you need.

    More details in the question: Cloning a Non-Standard Svn Repository with Git-Svn