We have CruiseControl.NET set up to do continuous integration of a number of our projects.
We are using a
block to make sure all of ou
In addition to the accepted answer. I found it helped us a lot by using url trigger.
<triggers>
<urlTrigger url="http://url.to.your.svn.server" />
</triggers>
So if the server is not reachable, CCNet won't event trigger a build. That effectively reduced the chance of failures.
Link to Documentation of URI Trigger.
Update: we never had a single false failure caused by svn server connectivity issue after above line was in place for near 2 months.
Here's a block I use to prevent these kinds of errors affecting the build status:
<maxSourceControlRetries>5</maxSourceControlRetries>
<stopProjectOnReachingMaxSourceControlRetries>true</stopProjectOnReachingMaxSourceControlRetries>
<sourceControlErrorHandling>ReportOnRetryAmount</sourceControlErrorHandling>
You need to put these right below the <project>
tag, not the <sourcecontrol>
. I'm not sure you'll be able to ignore just the "timed out" exception, though - all SVN exceptions will be treated the same.
UPDATE: you can find out more about these settings in the CC.NET documentation, but let me copy the relevant stuff:
maxSourceControlRetries: The maximum amount of source control exceptions in a row that may occur, before the project goes to the stopped state(when stopProjectOnReachingMaxSourceControlRetries is set to true).
stopProjectOnReachingMaxSourceControlRetries: Stops the project on reaching maxSourceControlRetries or not. When set to true, the project will be stopped when the amount of consecutive source control errors is equal to maxSourceControlRetries.
sourceControlErrorHandling: What action to take when a source control error occurs (during GetModifications). These are the possible values :
Can't you just increase the 'timeout' value ?
<sourcecontrol>
...
<timeout>60000</timeout> <!-- timeout in milliseconds -->
...
</sourcecontrol>