views:

300

answers:

2

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/&lt;/webURL&gt;
        <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>
+1  A: 

See Project Configuration Block and Subversion Source Control Block. The Project working directory is for the project as a whole, The Source Control working directory designates where the source will be checked out to. This may be different (if so, likely a sub-directory) of your project working directory.

JoshL
thanks for those specific links. If you look at the example config above. The SVN workingdirectory is completely different than the project workingdirectory. So will it copy to both?
Brian Boatright
+2  A: 

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 Working Directory for the project (this is used by other blocks). Relative paths are relative to a directory called the project Name in the directory where the CruiseControl.NET server was launched from. The Working Directory is meant to contain the checked out version of the project under integration.

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.

The folder that the source has been checked out into.

Quoted Sources:

Gishu