0

目前我正在尝试运行一个远程颠覆存储库的克隆。远程存储库只能通过一个非常慢的链接获得,所以我svnsync创建了一个本地 subversion 存储库。将近 30 小时后,我现在拥有了 subversion 存储库的本地副本。

我现在如何将其克隆到新的 mercurial 存储库?问题是以下两种使用形式file:///似乎都不起作用:

$ hg clone svn+file:///home/user/repo repo.hg
abort: repository svn+file:///home/user/repo not found!
$ hg clone file+svn:///home/user/repo repo.hg
abort: repository file+svn:///home/user/repo not found!
$ hg clone file:///home/user/repo repo.hg
abort: repository /home/user/repo not found!

相反svn info file:///home/user/repo ,确实给了我信息并证明那个地方有一个适当的颠覆存储库。svn://显然没有意义,因为我没有在本地运行服务器。

我也试过:

$ hgimportsvn file:///home/user/repo repo.hg
SVN branch isn't a copy
Finished! You can now pull all SVN history with 'hgpullsvn'.

hgpullsvn前半打修订唯一成功,然后出错:

Interrupted, please wait for cleanup!

External program failed (return code 1): hg '--encoding' 'utf-8' 'remove' '-A' 'branches/Company/CVSROOT'
branches/Company/CVSROOT: No such file or directory

(显然,这CVSROOT源于之前从 CVS 转换为Subversion。这是在我之前。)

即使我尝试强制使用它也不理解协议说明hgsvn符?file:///svn+file:///

注意:我曾尝试通过hghgsvn之前进行克隆,但hgsvn一段时间后通过同步时出现错误。由于克隆整个历史需要很长时间,所以我使用了本地颠覆存储库副本,我打算从中克隆,hgsvn就像我过去所做的那样。

4

2 回答 2

3

只是意见:不要使用 2010 年以来“处于维护模式”的 hgsvn,将 hgsubversion 扩展添加到 Mercurial 并用它克隆 Subversion 存储库

PS: “svn+”前缀仅对 http 服务的存储库有用(因为您可以将 http:// 用于 Subversion、Mercurial、Git)。本地 Subversion 存储库(使用 hgsubversion 克隆)将是 file:///

于 2013-03-16T08:42:42.000 回答
1

我又遇到了这个问题。这也是配置错误或未安装hgsubversion扩展的症状之一。

确保您的.hgrcor (全局或本地)中有适当的行,如HgSubversion 的文档站点上Mercurial.ini所指出的那样。示例(根据需要调整路径):

[extensions]
hgsubversion = ~/hgsubversion/hgsubversion

然后检查:

hg help hgsubversion
hg help subversion

我的猜测是,没有扩展 Hg 根本不知道文件夹中会发生什么,因此需要一个无法找到的 Mercurial 存储库。

在我的情况下,这又是由覆盖本地~/.hgrc.

于 2013-11-19T19:16:40.013 回答