Mercurial 是否可以使用hgsubversion分步克隆?
我正试图用hgsubversion克隆一个相当大的subversion存储库Mercurial 是否可以使用hgsubversion分步克隆?,mercurial,clone,hgsubversion,Mercurial,Clone,Hgsubversion,我正试图用hgsubversion克隆一个相当大的subversion存储库 hg clone --startrev 8890 svn+https://my.reposit.ory/trunk trunk_hg 大约一小时后,clone操作中止,并显示内存不足消息: 是否可以为克隆操作指定结束修订,并通过拉取获取其余修订?或者以某种方式将克隆分解成更小的步骤? 可以尝试使用-r标志仅克隆特定变更集。尽管这可能适用于hgsvn,也可能不适用于hgsvn。建议使用有限范围的修订进行克隆,然后拉取是
hg clone --startrev 8890 svn+https://my.reposit.ory/trunk trunk_hg
大约一小时后,clone
操作中止,并显示内存不足消息:
是否可以为克隆
操作指定结束修订,并通过拉取
获取其余修订?或者以某种方式将克隆分解成更小的步骤?
可以尝试使用
-r
标志仅克隆特定变更集。尽管这可能适用于hgsvn,也可能不适用于hgsvn。建议使用有限范围的修订进行克隆,然后拉取是推荐的方法,我可以确认它在几个GB大小的svn存储库中可以完美地工作。如其他人所建议的,您可以使用-r为克隆指定停止修订。另一个选择(如果您将克隆保留在崩溃的地方)是在trunk\u hg
copy中运行hg pull
。您可能需要自己编辑/创建.hg/hgrc
来添加[path]\n default=svn+https://my.reposit.ory/trunk
,因为我认为我们在克隆过程结束时添加了这一点。可能在拉之前运行hg svn rebuildmeta
,以防在OOM发生时hgsubversion的跟踪元数据被冲洗掉
我希望这有帮助 以下是克隆整个svn回购协议的解决方法:
当我指定
-r 8890:20000
时,我得到一个错误无法识别的Subversion修订版8890:20000:只有数字有效。
愚蠢的我!没有意识到-r
指定的是停止修订,而不是变更集范围。现在它起作用了hg clone--startrev 8890-r 10000…
初始化了回购协议和后续的hg pull-r xxxx
让我添加剩余的subversion修订版。不幸的是,OOM后的pull
不起作用,由于到目前为止检索到的回购在中止后自动删除。在每次pull
结束时,会出现中止消息:pull xxx修订\n中止:00changelog。i@11000:无节点代码>。有什么解释吗?这似乎不是一个问题,因为我可以继续拉。不,我从来没有注意到这个错误。如果它是无害的,我想我会建议忽略它。对我不起作用:hgpull-r4951
→ <代码>**第三方扩展hgsubversion可能已损坏,遇到未知异常ValueError:需要20字节的哈希值
。刚才找到了,其中提到了内存不足的情况以及接受答案的解决方案;目前(r777)位于参考文件的第228..238行。
[r20097] user: description
abort: out of memory