Mercurial 是否可以使用hgsubversion分步克隆?

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。建议使用有限范围的修订进行克隆,然后拉取是

我正试图用hgsubversion克隆一个相当大的subversion存储库

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回购协议的解决方法:

  • 开始克隆
  • 立即中止(windows中的Ctrl+C)
  • 比汞拉力大
  • 你记性太差了
  • 重复步骤3,直到签出所有提交

  • 当我指定
    -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