Dependencies
Subversion command line client must be installed and in the PATH.
Install
For installation during execution of the CI Factory install script add
<string value="Subversion"/>
to "Packages.InstallList". Set these properties in the arguments file or the packages properties file:
SVN.URI.Root - This is root or the path that will contain the folder named after your project.
SVN.URI.ProjectName - This can be the same value as SVN.URI.Root or ${SVN.URI.Root}/${ProjectName}, it depends on if this is a shared or dedicated repo for this project.
SVN.URI.ProjectCodeLine - This is the path to the codeline in the repo. It is generally ${SVN.URI.ProjectName}/${ProjectCodeLineName}
CCNet.SVN.URI.ProjectName - This needs to evaluate to the same value as SVN.URI.ProjectName. It should use different technology to variablize the string: dtd entities. So if SVN.URI.ProjectName is ${SVN.URI.Root}/${ProjectName} then CCNet.SVN.URI.ProjectName should be ${SVN.URI.Root}/&ProjectName;.
CCNet.SVN.URI.ProjectCodeLine - This is generally ${CCNet.SVN.URI.ProjectName}/&ProjectCodeLineName;.
CCNet.SVN.WebRepoUrl - Depending on how you access your repo this may be the same value as SVN.URI.Root. This is the http view into your repo.
SVN.WebVisible - Boolean, do you have a web view into your repo?
SVN.Credentials.SafeStorage - Boolean, set to true if you do not want the build users credentials stored in the repository for ?anyone? to see.
SVN.Username - The user name the build will use to access the repo, this account needs read/right access!
SVN.Password - The password for the account the build uses to access the repo.
SvnBinPath - This is the path of the directory containing the svn.exe. It defaults to Program Files\Subversion\bin, where ever Program Files is. If you need to change this note the funky value: ${'$'}{environment::get-variable('ProgramFiles')}\Subversion\bin. It is ${'$'}{...} as apposed to the normal ${...}, it is your best interest to maintain the funk.
Targets
SourceControl.CleanGetOfThirdPartyDirectory
This target will try to figure out what is not a versioned file in
the repo and delete any unversioned files. If it can not figure this
out it will delete the folder and update it from the repo.
SourceControl.CleanGetOfProductDirectory
This target will try to figure out what is not a versioned file in the
repo and delete any unversioned files. If it can not figure this out
it will delete the folder and update it from the repo.
SourceControl.GetOfThirdPartyDirectory
This target simply performs an update.
SourceControl.GetOfProductDirectory
This target simply performs an update.
SourceControl.CheckOut
Makes use of the properties: SourceControl.CheckOut.File, SVN.Username, and SVN.Password. Will update the file specified, update
not checkout. The name CheckOut is related to Visual Source Safe. Be
aware that polymorphism is at play here. Callers of this script do not
know if the source control provider is Source Safe, Subversion, or
something else.
SourceControl.CheckIn
Makes use of the properties: SourceControl.CheckIn.File,
SVN.Username, and SVN.Password. Will perform an update then a commit on
the file specified.
Reports
None.
Trouble Shooting
|