我有几个项目是在Windows和Mac之间共享的。dev机器是一台运行Parallels的Mac :文件存储在Mac端,源代码共享给Windows端。这非常方便,因为我可以在Windows和Mac工具之间快速地来回切换,而不必同步文件。
最近我从Subversion切换到Mercurial,如果我使用Windows工具添加/更新等,我会遇到Mercurial存储库崩溃的问题。我必须非常小心Windows端的哪些操作是安全的(主要是只读操作),当然我经常会忘记。
有人知道为什么会发生腐败吗?我认为Mercurial存储库是平台不可知的。有什么办法在不完全移除Windows工具的情况下防止它吗?
发布于 2010-05-27 22:24:37
windows端和OSX端都使用相同版本的mercurial。Mercurial在网络和文件级别有很好的向后兼容性,因为任何版本都可以推/拉/提交到任何以前版本的存储库,但它不是向前兼容的,所以如果你的Windows端使用mercurial 1.0,而你的OSX端是1.5,那么windows不应该提交到OSX端创建的克隆。
总体而言,mercurial是为每个系统的每个用户克隆构建的,并且通过推送和拉入来协调冲突的操作。不推荐使用由多个客户端访问的共享repos来执行诸如提交等仅限本地的操作。
在两个系统上都可以编辑,但只能从OSX提交。在Windows端,您可以通过在%USER_PROFILE%\Mercurial.ini文件中添加类似以下内容来强制执行:
[hooks]
pre-commit = c:\doesnotexist.exe
这应该足以使钩子失败,从而阻止提交通过。
https://stackoverflow.com/questions/2921495
复制相似问题