【问题标题】:Handling svn locks / cleanup when using CruiseControl .NET and Subversion使用 CruiseControl .NET 和 Subversion 时处理 svn 锁/清理
【发布时间】:2009-06-08 21:33:36
【问题描述】:

我正在使用 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 清理,然后才能再次构建项目。有解决办法吗?

【问题讨论】:

    标签: svn cruisecontrol


    【解决方案1】:

    新的 Cruise Control.Net 1.4.4 服务器在 Subversion 源代码控制块上有两个附加属性。

    CCNET Documentation - Subversion Source Control Block

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

    【讨论】:

    【解决方案2】:

    有点杂乱无章,但你能创建一个按需运行并进行 svn 清理的项目吗?

    我知道你可以在 Java 版本的 CruiseControl 中使用,所以我假设你可以使用 CC.NET 做同样的事情。

    【讨论】:

    • 我想避免这个解决方案,因为当项目数量增加时它的扩展性很差。
    【解决方案3】:

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

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

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

    例如,您只需要:
    if %CCNetIntegrationStatus% == "Exception" svn cleanup

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多