在克隆中间出错后更新是否安全?

时间:2012-01-20 12:05:45

标签: mercurial clone dvcs

在从Mercurial(Kiln)克隆大(4 GB)回购的过程中出现一些zlib错误。

接下来我应该做什么?从头开始删除并尝试,或者我可以hg pull -u吗?

在克隆过程中出现一些错误后,本地存储库是否会处于一致状态?

更新以澄清问题:克隆存储库成功,但某些子存储库的克隆失败。这会改变什么吗?

1 个答案:

答案 0 :(得分:2)

如果在克隆大型存储库时遇到错误,Mercurial将自动中止该事务。回滚事务时,Mercurial将清理所有内容。对于hg clone,遗憾的是这意味着已经下载的变更集已经消失。所以你可以安全地重新克隆。

然而,从你提出问题的方式来看,听起来好像在中止之后还剩下一些东西。所以我猜你开始在中途流产的hg pull?同样适用于pull:中止将回滚事务,您可以安全地重新启动hg pull

中止拉动看起来像这样:

$ hg pull http://localhost:8000
pulling from http://localhost:8000/
searching for changes
adding changesets
transaction abort!                                                              
rollback completed                                                              
abort: stream ended unexpectedly (got 12 bytes, expected 503)                   

我在我的计算机上启动hg serve并从该服务器开始拉取。然后我在拉动中间杀了hg serve。客户端中止并回滚了事务。