svnmercurialmercurial-convert

Mercurial from Subversion: moves, renames and tags


I have a subversion repo with the following layout:

svnrepo/projectA/trunk
svnrepo/projectA/tags
svnrepo/projectA/branches
svnrepo/projectB/trunk
svnrepo/projectB/tags
svnrepo/projectB/branches


which I would like to move to a mercurial repo with a revised layout:
hgrepo/projectA
hgrepo/projectB

What is the best way of doing this? Some of my thoughts are:

Option1

Rearrange the paths in subversion (using svn move) to an intermediate format:

svnrepo/trunk/projectA
svnrepo/trunk/projectB
svnrepo/tags/projectA
svnrepo/tags/projectB
svnrepo/branches/projectA
svnrepo/branches/projectB

then hg convert on the svnrepo/trunk. Will this confuse hg importing?

Option 2 hg convert each of the projects/trunk into separate hg repos. Then merge them into a single hg repo (using hg init, hg pull -f projectA, etc). I think this will lose the branch names and tags on the first imported project.


Solution

  • In Mercurial, storing unrelated codebases in the same repository is a bad idea because it will

    The solution is to convert your single Subversion repository into multiple Mercurial repositories. Most conversion tools support this.