4

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

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

推送到 t:\datamgt\automat\Kevin\SampleRepo 搜索更改 [错误 32] 进程无法访问该文件,因为它正被另一个进程使用:'T:\datamgt\automat\Kevin\SampleRepo\.hg\journal .dirstate'

我正在使用 TortoiseHG 1.1.1 和 Mercurial 1.6.1023。

我已经能够推送到存储在同一工作站上的存储库,但不能推送到网络共享存储库。如果可能的话,我们宁愿不使用基于网络服务器的存储库——将新软件添加到我们的服务器是一场艰苦的战斗。

4

1 回答 1

2

推送到网络共享是可能的,但 Mercurial 团队不建议这样做。

请参阅Mercurial wiki中发布存储库中的“共享磁盘”部分:

通常仅限于 Intranet,由于网络文件系统可靠性的一般问题,通常不推荐使用

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

但是在家里,我在 NAS 上有一个网络共享(它可以从 Windows 访问,它看起来和感觉就像一个 Windows 共享,但 NAS 实际上运行在 Linux 上)。我很长一段时间都没有问题,但是几周以来我遇到了像你一样的类似错误(虽然有不同的错误消息)。
在 Mercurial bug tracker 上发布了这个,并被告知我的问题可能是由于我的 NAS 在 Linux 上运行这一事实引起的,因为他们不知道真正的Windows 共享存在任何问题:

在真正的 Windows 共享(由 Windows 提供服务)上似乎没有问题(从未听说过其他人在这样做时遇到问题)。

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

于 2011-06-26T13:39:01.013 回答