【问题标题】:Is it safe to update after error in the middle of clone?在克隆中间出错后更新是否安全?
【发布时间】:2012-02-15 00:08:17
【问题描述】:

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

接下来我应该(可能)做什么?删除从头开始试试,还是我可以hg pull -u

在克隆过程中出现一些错误后,本地存储库会保持一致状态吗?

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

【问题讨论】:

  • 通常情况下,克隆中止后无法拉取,所以这个问题没有实际意义。

标签: mercurial clone dvcs


【解决方案1】:

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

但是,从您提出问题的方式来看,听起来中止后还剩下一些东西。所以我猜你开始了一个hg 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。客户端中止并回滚事务。

【讨论】:

  • 谢谢。 更新以澄清问题: 存储库克隆成功,但某些子存储库的克隆失败。这有什么改变吗?
  • 并非如此。 subrepo 将被完全克隆或事务将被回滚。您应该能够在外部 repo 中重做 hg update
猜你喜欢
  • 2012-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多