如何在Windows / Mac之间共享存储库时避免Mercurial repo损坏?

时间:2010-05-27 13:27:13

标签: macos mercurial parallels

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

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

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

1 个答案:

答案 0 :(得分: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

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