Wednesday, September 25, 2013

Addendum to Atlassian migration guide SVN->Mercurial

If you have unconventional SVN layout like this:

 FOO
 |
 |--branches
 |--tags
 |--trunk
 |--foodir
     |-src
     |-...

Atlassian recommendation is to use svn-dump-reloc but that didn't help me in this case.

You could manually copy foodir to trunk but that will lose all svn history on files when migrated to Mercurial.

What I did is this:

1. Created local SVN repository
 mkdir svnRepo  
 cd svnRepo/  
 svnadmin create svnload  
 svnadmin load svnload/ < ~/Documents/Mercurial/svn.dump  

2. Run Mercurial convert command but with explicitly set directory for trunk
 hg --config convert.svn.trunk=foodir convert file:///tmp/Mercurial/svnRepo/svnload/FOO "hgRepos/FOO" --authormap authors.txt  

Also Migration guide doesn't say but you should alter .hgrc file and put:
 [extensions]  
 convert =