4
  • 杀死 Mercurial 进程时会造成哪些损害?工作目录可能处于未定义状态吗?.hg/-admin 区域可能会以某种方式损坏吗?

  • Mercurial 是否以某种“原子”操作编写文件?(工作树文件、.hg/-internal 文件、配置文件等等......)

4

1 回答 1

5

这是安全的。完成所有写入,以使磁盘上的文件始终保持一致。事务要么完全写出,要么在下次找到时自动回滚。不仅在关闭时保持一致,而且始终保持一致——无论是通过 SIGKILL 还是电源故障停止。

您可以在这里弄清楚这是如何完成的:https ://www.mercurial-scm.org/wiki/FileFormats 。这部分是可能的,因为所有文件写入都只是追加。在写入任何内容之前,会记录文件长度,如果发现处于不一致状态,它们会自动将文件截断回检查点,已知良好的长度。

使用像 dropbox 之类的东西(它以它喜欢的任何顺序同步文件)可以把它扔出窗口,这就是为什么最好让 hg 成为写入存储库的唯一进程。

于 2012-05-07T18:50:12.180 回答