VS2008和ClearCase:打开解决方案提示无原因检出请求

5
我有一个小问题,导致我的自动化构建失败。
当我们打开最近从VS2005转换到VS2008的解决方案时,通过ClearCase请求检出解决方案文件。
如果我们允许它,则不会进行任何更改,并且默认情况下ClearCase不喜欢没有更改的签入。因此,我们撤销了检出 - 从那时起,VS很高兴,它能够写入.suo文件。
如果我们取消保护解决方案文件,启动VS2008,它可以正常创建.suo文件,如果我们然后取消劫持.sln文件(无论如何都没有更改,所以VS2008不会注意到),再次启动VS2008,它就可以正常工作,不需要检出。
在我的构建脚本中,我从视图中删除所有私有文件,然后强制升级受控文件的非劫持版本。然后我们构建部署项目(以及所有依赖项),由于正在删除.suo文件,因此每次都会出现检出.sln文件行为。
而在构建服务器上,没有人看到要求检出的对话框,构建挂起。
我可以更改(修补)构建脚本以不删除.suo文件,但我宁愿不这样做。
编辑:澄清- .suo文件未检入ClearClase-它是由VS2008创建的视图私有文件,但是要创建此文件,它需要无实际原因地检出.sln文件。
进一步编辑:
我已经找到了解决办法-我已根据此线程上的后续帖子禁用了集成。

我已经根据你的评论更新了关于sln文件的答案。 - VonC
4个回答

4

好的,我找到了解决问题的方法,实际上很简单。

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

我们需要使用VS来构建部署项目,因此我们调用devenv来为我们完成此操作。但是我们仅将其用作构建引擎,构建引擎永远不需要知道如何修改源项,因为它们都是从ClearCase中获取的。我们允许构建服务器修改的唯一项是AssemblyInfo文件中的程序集文件版本号属性,但我们是在NAnt中而不是在Visual Studio中进行此操作。

因此,禁用此功能即可解决问题。可能不是每个人的解决方案,但对于构建服务器来说,这是正确的方式。


1
哈,我在 VS 中也做过类似插件的事情,就是把它们拔掉! - leppie

1

这个故障排除项目,让我找到了这个修复包,解决了我们开发环境中的问题。虽然我们仍在使用VS2005,但我认为这与在VS2008中出现的问题相同。


0

这在VS2008中似乎很正常,它在打开解决方案时会检查.sln文件。我也不喜欢它。

然而,您的问题是.suo文件也被检入了。这个文件不应该放在源代码控制下。就像proj.user文件一样。我猜测suo代表Solution User Options。


就像我之前的评论所说 - .suo文件是视为私有文件而不是ClearCase元素。 - Alan Mullett
我明白,就像你说的一样,我也有同样的问题。但它除了偶尔不同步之外并没有引起任何问题。 - leppie

0

您可以:

  • 在 "cleartool update -force -overwrite" 之后,更新您的脚本以劫持快照视图中的 sln 文件。
  • 或者,为了避免检出 sln 文件,您可以尝试保持 .suo 文件 的检入状态。

如果上述建议有效,则有几个原因可以让人们希望将此文件纳入版本控制:


感谢您的回答。我需要澄清的是,.suo文件不在ClearCase下,而是视图私有的。当它重新创建丢失的文件时,它会尝试检出.sln文件。 - Alan Mullett

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接