CruiseControl.Net and CVS: Multiple Modules

Something I ran into is trying to check multiple modules for changes since the project I am trying to “modernize” is spread across what cvs calls modules. Really all they are is projects separated in the same trunk, but whatever. The point is I didn’t want to have to check the root directory where all projects are housed in order to see if just 5 have changed. Turns out it’s pretty easy. Just a disclaimer though: I’m still learning Cruise Control from scratch which means there might be a better way. This one however is simple and works… just like me. Well at least he simple part.

  <sourcecontrol type="multi">
    <sourceControls>
      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot>
        <module>location/of/theModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theSecondModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theThirdModule</module>
      </cvs>

      <cvs>
        <executable>C:\Program Files (x86)\cvsnt\cvs.exe</executable>
        <cvsroot>yourCvsRoot</cvsroot>
        <module>location/of/theFourthModule</module>
      </cvs>
    </sourceControls>
  </sourcecontrol>

The secret is the “multi” key word in the sourcecontrol tag and then adding the many cvs tags with the correct values.