VS2008和ClearCase:开放解决方案无缘无故地请求结账

时间:2009-03-09 11:02:18

标签: visual-studio-2008 clearcase

我有一个问题导致我的自动构建失败。

当我们打开最近从VS2005转换到VS2008 VS的解决方案时,通过ClearCase请求我们签出解决方案文件。

如果我们允许它,那么它无论如何都不做任何更改,默认情况下,ClearCase不喜欢没有更改的签入。所以我们撤消了结账 - 从那时起VS很高兴,它能够写出.suo文件。

如果我们取消读取保护解决方案文件,启动VS2008它会创建.suo文件ok,如果我们然后取消劫持.sln文件(无论如何都没有更改,因此VS2008没有注意到)并再次启动VS2008没关系 - 不要求结账。

在我的构建脚本中,我从视图中删除所有视图私有文件,然后使用强制取消劫持受控文件进行更新。然后我们构建部署项目(以及所有依赖项),并且当.suo文件被删除时,它每次都属于checkout .sln文件行为。

在构建服务器上,没有任何人看到对话框要求结帐,构建会挂起。

我可以更改(也就是bodge)构建脚本以不删除.suo文件,但我宁愿不这样做。

编辑:澄清 - .suo文件未被检入ClearClase - 它是由VS2008创建的视图专用文件,但是为了创建此文件,它想要检查.sln文件是不是真正的原因。 / p>

进一步编辑:

我找到了解决方案 - 我已根据此帖子的后续帖子禁用了整合。

4 个答案:

答案 0 :(得分:4)

好的,我找到了问题的解决方案,实际上非常简单。

我在构建服务器上禁用了Visual Studio ClearCase集成。

正在使用VS,因为我们需要构建部署项目,所以我们称devenv为我们这样做。但是我们只将它用作构建引擎,构建引擎从不需要知道如何修改源项,因为它们都来自ClearCase。我们允许构建服务器修改的唯一项是AssemblyInfo文件中的程序集文件版本号属性,但是我们在NAnt中而不是在Visual Studio中这样做。

因此,禁用功能和问题就会消失。可能不是每个人的解决方案,而是在构建服务器上,这是前进的方向。

答案 1 :(得分:1)

This问题排查项目,让我找到了解决了我们开发环境中问题的this修订包。我们仍在使用VS2005,但我希望它与VS2008中出现的问题一样。

答案 2 :(得分:0)

对于VS2008来说这似乎是正常的,它在打开解决方案时会检出.sln文件。我不喜欢它。

然而,您的问题是.suo文件也已签入。此文件不应置于源代码管理之下。它就像proj.user文件。我怀疑suo代表解决方案用户选项。

答案 3 :(得分:0)

你可以:

  • 更新您的脚本,以便在“cleartool update -force -overwrite”之后劫持快照视图中的sln文件。
  • 或者,为了避免签出,您可以尝试保持.suo file签到,

如果上述建议有效,那么有几个原因可以让人们想要将此文件保留在版本控制之下:

  • 由于.suo file is disposable(VS2008只是创建一个新的,如果它不存在),在源代码控制下可能被视为避免创建的一种方法(因此避免ClearCase插件检测它和试图“添加源控制”或检查出来)。

  • 在版本控制下使用.suo文件(但不通过任何进一步的结帐/签入更新)的另一个好处是when you are comparing您签出的项目与另一个已在其他地方下载的相同项目的签出版本:文件将始终相同,而不是系统地不同(因为如果是二进制文件,并且任何新版本的二进制文件将自身注册为不同的文件)