Mercurial 存储库损坏

bob*_*tle 14 corruption mercurial

这与这个问题有些相关,但又是一个不同的问题。

我们有一个中央 Hg 存储库,通过 SSH 和mercurial-server为用户提供服务。我们有许多 Mac、Linux 和 Windows 客户端连接到它。

现在已经发生了两次,其中一个 Windows 用户损坏了他们的存储库,然后又被推回了破坏它的中央用户。我想在中央存储库上编写一个传入的钩子脚本,以防止交易被接受,如果它会破坏中央存储库。

虽然不幸的是我对 Mercurial 的了解不够,无法编写这样的脚本。其他人有没有遇到过这种情况?我个人不太确定为什么 hg 默认不这样做。

小智 4

Mercurial 的最新版本(自 1.5 起)支持传入数据的验证。添加

[server]
validate = True
Run Code Online (Sandbox Code Playgroud)

添加到服务器的 hg 配置(.hg/hgrchgwebdir 配置应该可以正常工作),让服务器验证传入数据并拒绝无效推送。然后客户端将看到类似于以下内容的错误:

remote: abort: missing file data for beta:dddc47b3ba30e54484720ce0f4f768a0f4b6efb9 - run hg verify
Run Code Online (Sandbox Code Playgroud)

希望有帮助!