I had a problem with our build process at work the other day. For reasons I won’t go into, our source control is on a different network from the build server and the developers. This means checking out the full source everytime takes too long. So the first solution was not to use the “cleanCopy” option in the Subversion source control block. This meant that the CruiseControl‘s working copy was just updating the local working copy. Shouldn’t really be a problem UNLESS you happen to update the working copy.

So the second problem is that we do have to update the working copy. We do this to set the testing/staging connection strings and embedding build numbers in various dlls. This pretty much causes a conflict anytime you touch the files that the build touches. So what to do?

As it turns out, I managed to achieve what I wanted by adding the following revert task to the beginning of the NAnt build script:


     

So now I get a fast build with no conflicts.