views:

1943

answers:

3

I have a .net project in subversion which is contineously integrated with Cruisecontrol.net.

i use Svn source control CCNET task.

The .net project library directory with set of reusable components configured as subversion externals.

ProjectA\libraries {reusable components directory} ProjectA\libraries\component1 ProjectA\libraries\component2 ProjectA\libraries\component3

projectA\Src { source code directory}

when the subversion externals are changed the build is not triggered, as it is not detecting the changes happened in extern folders.

How to make subversion ccnet task to build immediately when there is change in configured components as externals.

A: 

I just setup a polling interval to check for mods - using the triggers node in ccnet.config it is an intervalTrigger. I also tell it to build only if modifications exists (the svn source changed) using the IfModificationExists attribute (which is the default)

You can set that interval pretty low if you want but I am not sure of a way to push a notification out of SVN that ccnet picks up.

keithwarren7
+4  A: 

In CruiseControl.NET 1.4 there is a few new flags for the subversion source control block, one of them is CheckExternals set this to true in your config and any modifications in your externals should trigger a build.

<checkExternals>True</checkExternals>
<checkExternalsRecursive>True</checkExternalsRecursive>
Alex
A: 

Thanks Alex for the answer.

we also started using Relative external URL which is not working with CCNET 1.4 version,

it is failing when it tries to get the list of modifications.

and also i can see one other issue with this CheckExternals code.

(ie) when the externals are configured from different svn repositories.

and the external library is only changed, then also the history command will fail.

sundar venugopal
There are google groups for users/devs for CruiseControl.NET you should make note of the excecptions there with as much detail as possible. There are many ways to configure Externals in SVN it seems, and not all of them are known to the devs. Any help or test cases you could provide will only help
Alex