4

我在 subversion 中有一个 .net 项目,它与 Cruisecontrol.net 持续集成。

我使用 Svn 源代码控制 CCNET 任务。

.net 项目库目录,其中包含一组配置为 subversion 外部的可重用组件。

ProjectA\libraries {可重用组件目录} ProjectA\libraries\component1 ProjectA\libraries\component2 ProjectA\libraries\component3

projectA\Src { 源代码目录}

当 subversion 外部更改时,不会触发构建,因为它没有检测到外部文件夹中发生的更改。

当配置的组件作为外部组件发生更改时,如何使 subversion ccnet 任务立即构建。

4

3 回答 3

7

在 CruiseControl.NET 1.4 中,subversion 源代码控制块有一些新标志,其中之一是 CheckExternals 在您的配置中将其设置为 true,并且您的外部文件中的任何修改都应该触发构建。

<checkExternals>True</checkExternals>
<checkExternalsRecursive>True</checkExternalsRecursive>
于 2008-12-17T15:24:42.193 回答
0

我只是设置了一个轮询间隔来检查 mod - 使用 ccnet.config 中的触发器节点它是一个间隔触发器。我还使用 IfModificationExists 属性(这是默认值)告诉它仅在修改存在(svn 源已更改)时才构建

如果您愿意,您可以将该间隔设置得非常低,但我不确定有一种方法可以将通知从 ccnet 接收到的 SVN 中推送出去。

于 2008-12-17T15:09:52.237 回答
0

感谢亚历克斯的回答。

我们还开始使用不适用于 CCNET 1.4 版本的相对外部 URL,

它在尝试获取修改列表时失败。

我还可以看到此 CheckExternals 代码的另一个问题。

(即)当从不同的 svn 存储库配置外部时。

并且只更改了外部库,那么历史命令也会失败。

于 2008-12-17T17:59:20.587 回答