What is the difference between the Project and SVN workingDirectory Config Blocks in CruiseControl.NET?
I setup Subversion and now I'm working on CruiseControl.NET and noticed there are two workingDirectory blocks in the config files. I've looked through their google groups and documentation and maybe I missed something but I did not see a clear example of how they are used during the build process.
The partial config below is taken from their Project file example page
http://confluence.public.thoughtworks.org/display/CCNET/Configuring+the+Server
<cruisecontrol>
<queue name="Q1" duplicates="ApplyForceBuildsReplace"/>
<project name="MyProject" queue="Q1" queuePriority="1">
<webURL>http://mybuildserver/ccnet/</webURL>
<workingDirectory>C:\Integration\MyProject\WorkingDirectory</workingDirectory>
<artifactDirectory>C:\Integration\MyProject\Artifacts</artifactDirectory>
<modificationDelaySeconds>10</modificationDelaySeconds>
<triggers>
<intervalTrigger seconds="60" name="continuous" />
</triggers>
<sourcecontrol type="cvs">
<executable>c:\putty\cvswithplinkrsh.bat</executable>
<workingDirectory>c:\fromcvs\myrepo</workingDirectory>
<cvsroot>:ext:mycvsserver:/cvsroot/myrepo</cvsroot>
</sourcecontrol>
</project>
</cruisecontrol>
Best Answer
I think the project working directory is used as the root folder for all commands in the CruiseControl block. So if I have a Nant task/script with relative folders, it will be appended to this root folder for actual execution.
The SourceControl working directory is where your SVN or CVS will check out files, when invoked. So this would be the 'Src' subdirectory under your project folder for instance.
Quoted Sources: