如何在CruiseControl.net中配置svn Task以检测subversion外部更改

时间:2008-12-17 15:04:39

标签: svn cruisecontrol.net

我在subversion中有一个与之集成的.net项目 Cruisecontrol.net。

我使用Svn源控制CCNET任务。

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

ProjectA \ libraries {可重用组件目录} 项目A \库\ COMPONENT1 项目A \库\ COMPONENT2 项目A \库\ component3

projectA \ Src {源代码目录}

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

如果有变化,如何使subversion ccnet任务立即构建 将组件配置为外部。

3 个答案:

答案 0 :(得分:7)

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

<checkExternals>True</checkExternals>
<checkExternalsRecursive>True</checkExternalsRecursive>

答案 1 :(得分:0)

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

如果您愿意,可以将该时间间隔设置得相当低,但我不确定是否可以将通知从ccnet中提取出来。

答案 2 :(得分:0)

感谢Alex的回答。

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

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

我也可以看到这个CheckExternals代码的另一个问题。

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

只更改外部库,然后历史命令也会失败。