我正在尝试在Windows 7上使用hgsubversion将Subversion存储库转换为Mercurial存储库。在我解决了许多其他错误之后,我现在被困在似乎使用了不正确的 Subversion 版本上。
当我尝试hg clone file:///C:/source/
时,出现以下错误:
abort: Unable to open an ra_local session to URL
Unable to open repository 'file:///C:/source'
Expected FS format between '1' and '4'; found format '6'
这似乎表明 Subversion 存储库是 1.8+ 版本(确实如此),但我的本地 Subversion 工具是旧版本。
事实上,hg version --svn
表明:
Mercurial Distributed SCM (version 2.8)
...
hgsubversion: 691078c03ed9
Subversion: 1.6.16
bindings: SWIG
但是svn --version
显示:
svn, version 1.8.4 (r1534716)
compiled Oct 28 2013, 05:30:01 on x86_64/x86-microsoft-windows5.1.2600
为什么 hgsubversion 报告使用了旧版本的 Subversion?据我所知,我只安装了Subversion 1.8.4。
还是因为 TortoiseHg 附带的捆绑 SWIG 绑定?我应该尝试其他绑定吗?
到目前为止,试图让它发挥作用是一个非常令人沮丧的经历。
你的问题是,你的计算机上有两个不同的SVN版本:你的常规服务器svn,以及与hgsubversion捆绑的版本。您可以通过以下方式解决此问题
- 设置一个SVN服务器(我读到应该有一个svnserve可以作为Windows服务运行),以便hgsubversion通过与版本无关的有线协议与SVN存储库通信
- 转储你的存储库内容,并将其加载到新创建的存储库中,该存储库是使用
svnadmin --pre-1.7-compatible
创建的,以便 HGSUBVERSION 版本可以读取它