使用CruiseControl .NET和Subversion时处理svn锁定/清理

时间:2009-01-12 09:33:39

标签: svn cruisecontrol

我正在使用CruiseControl .NET和Subversion源代码控制插件来自动构建我们的项目。

有些项目会自动检查修改,但偶尔检查失败,CruiseControl .NET会以“异常”标记项目:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Working copy 'xxFilename' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details)

在此之后,我必须手动登录服务器并在项目再次构建之前对文件夹执行svn清理。有解决方法吗?

3 个答案:

答案 0 :(得分:6)

新的Cruise Control.Net 1.4.4服务器在Subversion源控制块上有两个额外的属性。

请参阅CCNET Documentation - Subversion Source Control Block

cleanUp和revert属性可以满足您的需求。

答案 1 :(得分:1)

有点像kludge但是你能创建一个按需运行并进行svn清理的项目吗?

我知道你可以在Java版本的CruiseControl中使用,所以我假设你可以使用相同的w / CC.NET。

答案 2 :(得分:0)

您应该能够在项目配置中使用发布者任务。

Project Configuration Block有一个发布者任务,将在每次构建后执行。

使用executable task,您可以将当前的集成状态作为环境变量传递,这将允许您使用简单的脚本或命令来决定是否执行svn清理。

例如,您需要的只是:
if%CCNetIntegrationStatus%==“Exception”svn cleanup

免责声明:我只是真的玩过CC,这是来自文档,而不是经验。