在64位Windows 7上使用Mercurial可以“推送”到网络共享吗?

我们正在从
Windows XP x86升级到Windows 7 x64,我正在测试当前工作流程的兼容性问题.

目前,我们将中央Mercurial存储库存储在网络共享上,将副本克隆到我们的工作站,并将我们的更改推送回基于网络的存储库.这在WinXP中完美运行,但在Win7中,我在回到网络共享时始终收到错误消息:

pushing to t:\datamgt\automat\Kevin\SampleRepo
searching for changes
[Error 32] The process cannot access the file because it is being used by another process: ‘T:\datamgt\automat\Kevin\SampleRepo\.hg\journal.dirstate’

我正在使用TortoiseHG 1.1.1和Mercurial 1.6.1023.

我已经能够推送存储在同一工作站上的存储库,但不能推送到网络共享仓库.如果可能的话,我们宁愿不去基于网络服务器的存储库 – 这是为了让新软件添加到我们的服务器上而进行的一场大战.

最佳答案 可以推送到网络共享,但不是Mercurial团队推荐的.

请参阅Mercurial wiki中Publishing Repositories中的“共享磁盘”部分:

generally restricted to intranets, not
generally recommended
due to general
issues with network filesystem
reliability

在我的工作场所,我们将HG存储库保存在网络共享(在Windows 2003服务器上),因为它是最容易设置的.我们现在这样做了大约一年半,我们从来没有像你这样的问题.

但在国内,我在NAS上拥有网络共享(它可以从Windows访问,它看起来和感觉就像一个Windows共享,但NAS实际上在Linux上运行).我很长一段时间没有遇到任何问题,但是几周之后我就遇到了类似你的错误(尽管有不同的错误信息).
posted this on the Mercurial bug tracker,我被告知我的问题可能是因为我的NAS在Linux上运行,因为他们不知道真正的Windows共享有任何问题:

On real Windows shares (served by
Windows) there doesn’t seem to be a
problem (never heard of others having
problems doing that).

所以也许你的问题也是由类似的东西引起的.
您尝试推送什么样的Windows共享?它真的在Windows机器上吗?

点赞