1

我有几个在 Windows 和 Mac 之间共享的项目。开发机器是运行 Parallels 的 Mac:文件存储在 Mac 端,源共享到 Windows 端。这非常方便,因为我可以在 Windows 和 Mac 工具之间快速来回切换,而无需同步文件。

最近我从 Subversion 切换到 Mercurial,现在如果我使用 Windows 工具添加/更新等,我会遇到 Mercurial 存储库损坏的问题。我必须非常小心 Windows 端的哪些操作是安全的(主要是只读的东西)当然我经常忘记。

有人知道为什么会发生腐败吗?我认为 Mercurial 存储库与平台无关。任何想法如何在不完全删除 Windows 工具的情况下防止它?

4

1 回答 1

4

Windows端和OSX端是否都使用相同版本的mercurial。Mercurial 在网络和文件级别具有很好的向后兼容性,因为任何版本都可以推送/拉取/提交到任何以前版本的存储库,但它不是向前兼容的,所以如果您的 Windows 端使用 mercurial 1.0 而您的 OSX 端是 1.5那么 Windows 不应该提交由 OSX 端创建的克隆。

一般来说,mercurial 是为每个用户每个系统的克隆而构建的,并且通过推送和拉取来调解冲突的操作。不推荐使用由多个客户端访问的共享存储库以进行仅本地操作(例如提交)。

在两个系统上编辑都很好,但只能从 OSX 提交。在 Windows 端,您可以通过在 %USER_PROFILE%\Mercurial.ini 文件中添加类似内容来强制执行此操作:

[hooks]
pre-commit = c:\doesnotexist.exe

这应该足以让钩子失败,这将阻止提交通过。

于 2010-05-27T14:24:37.417 回答