7

我正在尝试使用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更小的步骤?

4

4 回答 4

6

正如其他人所建议的那样,您可以使用 -r 为克隆指定停止修订。另一种选择(如果您将克隆保留在崩溃的地方)将只hg pulltrunk_hg副本中运行。您可能必须自己编辑/创建.hg/hgrc才能添加[paths]\n default = svn+https://my.reposit.ory/trunk,因为我认为我们会在克隆过程结束时添加它。也许hg svn rebuildmeta在你拉之前运行只是为了防止当 OOM 发生时 hgsubversion 的跟踪元数据被淹没。

我希望这有帮助!

于 2010-12-22T13:13:08.247 回答
1

http://www.selenic.com/mercurial/hg.1.html#clone

可以尝试使用该-r <revid>标志仅克隆特定的变更集。尽管这可能适用于 hgsvn,也可能不适用于 hgsvn。

于 2010-12-21T20:29:15.983 回答
1

推荐的方法是在有限的修订范围内进行克隆然后拉取,我可以确认它对于几 GB 大小范围内的 svn 存储库可以完美运行。

于 2010-12-22T12:42:38.943 回答
0

这是克隆整个 svn repo 的解决方法:

  1. 开始克隆
  2. 立即中止它(Ctrl+C在 Windows 中)
  3. 比汞拉
  4. 你内存不足
  5. 重复第 3 步,直到您检查所有提交
于 2013-02-01T08:36:08.007 回答