我在Visual Studio中使用VisualHG。在拉取(使用Fetch)时,有时我会收到以下错误消息:
Errno 13 C:\inetpub\Websites\SomeProject.csproj:该进程无法访问该文件,因为其他进程正在使用该文件
这反过来使我的存储库变得一团糟,导致我不得不删除所有内容并再次拉取。我能做些什么来防止这种情况发生吗?在从TortoiseHG或命令行拉入时似乎不会出现此问题,只有在Visual Studio中打开项目并使用VisualHG拉入时才会出现此问题。
发布于 2011-06-15 23:52:18
我们在一台装有TortoiseHg 2.0.4和VS2008的机器上看到了非常类似的东西。它看起来像Visual Studio,它在检测到文件修改事件时会短暂地锁定文件,这会导致Hg失败。我们在TortoiseHg和命令行客户端上都看到了这一点。
虽然在pull期间发生这种情况非常令人沮丧,但在merge期间也会发生这种情况,这可能是相当灾难性的。
发布于 2011-06-14 03:41:10
也许你唯一能做的就是在你fetch的时候不要打开Visual Studio。导致它的不是fetch的pull部分,而是update。Visual Studio似乎锁定了您的项目文件,并且不允许Mercurial在其打开时对其进行更改。
但是,您没有指定在通过TortoiseHG或命令行使用fetch时项目是否处于打开状态。您也可以尝试单独拉取和更新,而不是使用fetch。
编辑:也可以是TortoiseHg版本。我之前尝试用一个打开的项目更新不同的版本,Visual Studio2008只是想重新加载它(没有文件锁定错误),但我使用的是TortoiseHg 2.0.5。你可以随时返回到1.1。*如果你不喜欢它或者它不能工作。
发布于 2011-10-18 01:03:26
我们已经看到与Mercurial和VS2008的文件锁定相同的问题,但与.csproj文件无关。我们甚至不对项目文件进行版本控制,因为它们是由cmake生成的,而是对我们的cmake文件进行版本控制。
这个问题导致我在一种情况下损失了一天的工作,在另一种情况下导致了不正确的合并,因为旧文件覆盖了新文件。
当这些事情发生时,我正在使用fetch扩展。
Z:>hg -- Mercurial Distributed SCM (1.9.2版)(有关详细信息,请参阅http://mercurial.selenic.com )
版权所有(C) 2005-2011 Matt Mackall和其他人这是自由软件;请参阅复制条件的源代码。没有任何保证;即使是适销性或对特定目的的适用性也不作保证。
https://stackoverflow.com/questions/6333138
复制相似问题