This page last changed on Apr 28, 2008 by rosspatterson.

'Multi' Source Control Configuration Example

You can use the 'Multi' Source Control plugin to check for modifications from any number of source control repositories. You may want to do this if (for example) you want to build if the source for your project changes, or if the binaries your project depends on change (which may be stored on a file server). Here's an example:

<sourcecontrol type="multi">
  <sourceControls>
	<filesystem>
	  <!-- Check for changes in the latest 1.2 version of the server... -->
	  <repositoryRoot>\\DistributionFileServer\Server\1.2.latest</repositoryRoot>
	</filesystem>
	<cvs>
	  <!-- ...or in the source of the client project -->
	  <executable>c:\tools\cvs-exe\cvswithplinkrsh.bat</executable>
	  <workingDirectory>c:\localcvs\myproject\client</workingDirectory>
	</cvs>
  </sourceControls>
</sourcecontrol>

Note that, due to the way the configuration gets parsed, if you are using a "multi" block, then the items within the <sourceControls> element should not be <sourcecontrol> elements (as you may expect). Instead, the name of the element should be the same as you would put in the "type" attribute when using a <sourcecontrol> element.

For example, normally you would point to a cvs repository like this:

<sourcecontrol type="cvs">
  <executable>c:\tools\cvs-exe\cvswithplinkrsh.bat</executable>
  <workingDirectory>c:\localcvs\myproject\client</workingDirectory>
</sourcecontrol>

But inside a <sourcecontrol type="multi"> element, this becomes:

<sourcecontrol type="multi">
  <sourceControls>
    <cvs>
      <executable>c:\tools\cvs-exe\cvswithplinkrsh.bat</executable>
      <workingDirectory>c:\localcvs\myproject\client</workingDirectory>
    </cvs>
  </sourceControls>
</sourcecontrol>

Configuration Elements:

Node Description Type Required Default
sourceControls The list of other Source Control Blocks to include. list of Source Control Blocks true n.a.
requireChangesFromAll If true, only return a list of modifications if all sourceControl sections return a non-empty list. Note that this is short-circuiting, i.e. if the first sourceControl returns an empty list, the next won't be called (this can be useful for situations where you have a slow source control server and you want to check a specific file first as a trigger) boolean false false
Unlike most source control blocks, this one does not support the timeout configuration element.
Document generated by Confluence on Mar 14, 2009 02:55