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:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
C:\Users\Developer\Versioned>svnadmin create DSharp.svn C:\Users\Developer\Versioned>echo exit 0 1>DSharp.svn\hooks\pre-revprop-change.bat C:\Users\Developer\Versioned>svnsync init file:///C:/Users/Developer/Versioned/DSharp.svn http://delphisorcery.googlecode.com/svn Copied properties for revision 0. C:\Users\Developer\Versioned>svnsync sync file:///C:/Users/Developer/Versioned/DSharp.svn http://delphisorcery.googlecode.com/svn Committed revision 1. Copied properties for revision 1. Transmitting file data ………. … Committed revision 630. Copied properties for revision 630. C:\Users\Developer\Versioned>hg clone https://bitbucket.org/jeroenp/dsharp DSharp.hg no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved C:\Users\Developer\Versioned>hg convert file:///C:/Users/Developer/Versioned/DSharp.svn DSharp.hg scanning source… sorting… converting… 628 Initial directory structure. 627 First version … 1 – refactoring for yield support (renamed DSharp.Collections.Yield.pas to DSharp.Collections.Iterators.pas) 0 – added XE4 packages C:\Users\Developer\Versioned>svn –version svn, version 1.7.5 (r1336830) compiled May 11 2012, 02:21:17 Copyright (C) 2012 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_neon : Module for accessing a repository via WebDAV protocol using Neon. – handles 'http' scheme – handles 'https' scheme * ra_svn : Module for accessing a repository using the svn network protocol. – with Cyrus SASL authentication – handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. – handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. – handles 'http' scheme – handles 'https' scheme C:\Users\Developer\Versioned>hg –version Mercurial Distributed SCM (version 2.6.2) (see http://mercurial.selenic.com for more information) Copyright (C) 2005-2012 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. C:\Users\Developer\Versioned>type DSharp.svn\format 5 C:\Users\Developer\Versioned>type DSharp.svn\db\format 4 layout sharded 1000 C:\Users\Developer\Versioned>type DSharp.svn\db\fs-type fsfs C:\Users\Developer\Versioned>type DSharp.svn\db\min-unpacked-rev 0 C:\Users\Developer\Versioned>dir DSharp.svn DSharp.svn\db Volume in drive C has no label. Volume Serial Number is 4665-BAA1 Directory of C:\Users\Developer\Versioned\DSharp.svn 09/26/2013 08:47 AM <DIR> . 09/26/2013 08:47 AM <DIR> .. 09/26/2013 08:47 AM <DIR> conf 09/26/2013 08:55 AM <DIR> db 09/26/2013 08:47 AM 2 format 09/26/2013 08:47 AM <DIR> hooks 09/26/2013 08:47 AM <DIR> locks 09/26/2013 08:47 AM 234 README.txt 2 File(s) 236 bytes Directory of C:\Users\Developer\Versioned\DSharp.svn\db 09/26/2013 08:55 AM <DIR> . 09/26/2013 08:55 AM <DIR> .. 09/26/2013 08:55 AM 4 current 09/26/2013 08:47 AM 22 format 09/26/2013 08:47 AM 5 fs-type 09/26/2013 08:47 AM 1,997 fsfs.conf 09/26/2013 08:47 AM 2 min-unpacked-rev 09/26/2013 08:55 AM 235,520 rep-cache.db 09/26/2013 08:47 AM <DIR> revprops 09/26/2013 08:47 AM <DIR> revs 09/26/2013 08:55 AM <DIR> transactions 09/26/2013 08:55 AM 3 txn-current 09/26/2013 08:47 AM 0 txn-current-lock 09/26/2013 08:55 AM <DIR> txn-protorevs 09/26/2013 08:47 AM 37 uuid 09/26/2013 08:47 AM 0 write-lock 10 File(s) 237,590 bytes 6 Dir(s) 2,377,388,032 bytes free C:\Users\Developer\Versioned> Failure:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
C:\Users\developer\Versioned>svnadmin create DSharp.svn C:\Users\developer\Versioned>echo exit 0 1>DSharp.svn\hooks\pre-revprop-change.bat C:\Users\developer\Versioned>svnsync init file:///C:/Users/developer/Versioned/DSharp.svn http://delphisorcery.googlecode.com/svn Copied properties for revision 0. C:\Users\developer\Versioned>svnsync sync file:///C:/Users/developer/Versioned/DSharp.svn http://delphisorcery.googlecode.com/svn Committed revision 1. Copied properties for revision 1. Transmitting file data ………. … Committed revision 630. Copied properties for revision 630. C:\Users\developer\Versioned>hg clone https://bitbucket.org/jeroenp/dsharp DSharp.hg no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved 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 repository C:\Users\developer\Versioned>svn –version svn, version 1.8.1 (r1503906) compiled Jul 22 2013, 19:58:17 on x86-microsoft-windows Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. – with Cyrus SASL authentication – handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. – handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. – handles 'http' scheme – handles 'https' scheme C:\Users\developer\Versioned>hg –version Mercurial Distributed SCM (version 2.7) (see http://mercurial.selenic.com for more information) Copyright (C) 2005-2013 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. C:\Users\developer\Versioned>type DSharp.svn\format 5 C:\Users\developer\Versioned>type DSharp.svn\db\format 6 layout sharded 1000 C:\Users\developer\Versioned>type DSharp.svn\db\fs-type fsfs C:\Users\developer\Versioned>type DSharp.svn\db\min-unpacked-rev 0 C:\Users\developer\Versioned>dir DSharp.svn DSharp.svn\db Volume in drive C has no label. Volume Serial Number is A855-3C2D Directory of C:\Users\developer\Versioned\DSharp.svn 09/25/2013 09:52 PM <DIR> . 09/25/2013 09:52 PM <DIR> .. 09/25/2013 07:38 PM <DIR> conf 09/25/2013 07:44 PM <DIR> db 09/25/2013 07:38 PM 2 format 09/25/2013 07:38 PM <DIR> hooks 09/25/2013 07:38 PM <DIR> locks 09/25/2013 07:38 PM 251 README.txt 2 File(s) 253 bytes Directory of C:\Users\developer\Versioned\DSharp.svn\db 09/25/2013 07:44 PM <DIR> . 09/25/2013 07:44 PM <DIR> .. 09/25/2013 07:44 PM 4 current 09/25/2013 07:38 PM 22 format 09/25/2013 07:38 PM 5 fs-type 09/25/2013 07:38 PM 6,963 fsfs.conf 09/25/2013 07:38 PM 2 min-unpacked-rev 09/25/2013 07:44 PM 232,448 rep-cache.db 09/25/2013 07:38 PM <DIR> revprops 09/25/2013 07:38 PM <DIR> revs 09/25/2013 07:44 PM <DIR> transactions 09/25/2013 07:44 PM 3 txn-current 09/25/2013 07:38 PM 0 txn-current-lock 09/25/2013 07:44 PM <DIR> txn-protorevs 09/25/2013 07:38 PM 37 uuid 09/25/2013 07:38 PM 0 write-lock 10 File(s) 239,484 bytes .
–jeroen