我正在尝试使用 hgsubversion 克隆一个相当大的subversion存储库。
hg clone --startrev 8890 svn+https://my.reposit.ory/trunk trunk_hg
大约一小时后,clone
操作将以内存不足消息中止:
[r20097] user: description
abort: out of memory
是否可以为clone
操作指定最终修订版,并使用pull
获取剩余修订版?或者以某种方式以较小的步骤分解clone
?
答案 0 :(得分:6)
您可以使用-r为克隆指定停止修订,正如其他人所建议的那样。另一个选项(如果您保留克隆的地方崩溃)将只在hg pull
副本中运行trunk_hg
。您可能必须自己编辑/创建.hg/hgrc
以添加[paths]\n default = svn+https://my.reposit.ory/trunk
,因为我认为我们会在克隆过程结束时添加它。如果在OOM发生时hgsubversion的跟踪元数据被清除,可能会在你的拉动之前运行hg svn rebuildmeta
。
我希望这有帮助!
答案 1 :(得分:1)
http://www.selenic.com/mercurial/hg.1.html#clone
可以尝试使用-r <revid>
标志仅克隆特定的变更集。虽然这可能适用于hgsvn,也可能不适用。
答案 2 :(得分:1)
使用有限范围的修订进行克隆然后提取是推荐的方法,我可以确认它对于几GB范围内的svn存储库是完美无缺的。
答案 3 :(得分:0)
这是克隆整个svn repo的解决方法: