Converting SVN repositories to HG isn’t always as straight forward as you want to.
GExperts and GExperts-Formatter succeeded a while ago, but DSharp (a very nice library by Stefan Glienke) failed at first.
It so happens that in the mean time, I switched VM’s to Delphi XE5 with a fresh list of VCS installs:
- SourceTree 1.2.x
- TortoiseHG 2.9.x (with built-in HG 2.7.x)
- TortoiseSVN 1.8.x (including SVN command-line tools)
- TortoiseGit 1.8.5 / msysGit 1.8.3)
That was the cause: this new setup caused a new SVN db format for local synced file based SVN repositories that HG cannot not cope with.
It worked fine when I went back to a VM that had this config:
- TortoiseHG 2.8.x (with built-in HG 2.6.x)
- TortoiseSVN 1.7.x (including SVN command-line tools)
So I won’t forget to keep an eye on progress, I filed this Bug 4043 – HG 2.7.x cannot convert a local file based SVN repository with db format 6 (works fine with db format 4):
HG 2.6.x and 2.7.x cannot convert SVN repositories with db format 6 that SVN 1.8.x defaults to.
(SVN db format list: see http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure)
This works fine when performing svnadmin/svnsync on SVN 1.7.5 (they will get a db format 4), but fails when performing svnadmin/svnsync on SVN 1.8.x (they will get a db format 6)
I’ve tried the matrix of SVN versions 1.7.5, 1.8.1 and 1.8.2 versus HG 2.6.2, 2.7 and 2.7. HG consistently fails with db format 6.
The error message you get is this:
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a Subversion repository
from the command here:
C:\Users\developer\Versioned>hg convert --verbose file:///C:/Users/developer/Versioned/DSharp.svn DSharp
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a CVS checkout
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a Git repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a Subversion repository
file:///C:/Users/developer/Versioned/DSharp.svn is not a local Mercurial repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a darcs repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a monotone repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a GNU Arch repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a Bazaar repository
file:///C:/Users/developer/Versioned/DSharp.svn does not look like a P4 repository
abort: file:///C:/Users/developer/Versioned/DSharp.svn: missing or unsupported repositoryTwo of my tries that shows success/failure and got me in the right direction:
Success:
Failure:
.
–jeroen
Filed under: Delphi, Development, DVCS - Distributed Version Control, Mercurial/Hg, Software Development, Source Code Management, Subversion/SVN Tagged: command line tools, software, technology