Package buildbot :: Package steps :: Package source :: Module oldsource :: Class CVS
[frames] | no frames]

Class CVS

source code

process.properties.PropertiesMixin --+            
                                     |            
           process.buildstep.BuildStep --+        
                                         |        
        process.buildstep.LoggingBuildStep --+    
                                             |    
                                        Source --+
                                                 |
                                                CVS

I do CVS checkout/update operations.

Note: if you are doing anonymous/pserver CVS operations, you will need to manually do a 'cvs login' on each buildslave before the slave has any hope of success. XXX: fix then, take a cvs password as an argument and figure out how to do a 'cvs login' on each build

Instance Methods
 
__init__(self, cvsroot=None, cvsmodule='', global_options=[], branch=None, checkoutDelay=None, checkout_options=[], export_options=[], extra_options=[], login=None, **kwargs) source code
 
computeSourceRevision(self, changes)
Each subclass must implement this method to do something more precise than -rHEAD every time.
source code
 
startVC(self, branch, revision, patch) source code

Inherited from Source: commandComplete, describe, getRepository, setDefaultWorkdir, setStepStatus, start

Inherited from process.buildstep.LoggingBuildStep: addLogFile, buildCommandKwargs, checkDisconnect, createSummary, evaluateCommand, getText, getText2, interrupt, maybeGetText2, setStatus, setupLogfiles, startCommand

Inherited from process.buildstep.BuildStep: __provides__, acquireLocks, addCompleteLog, addFactoryArguments, addHTMLLog, addLog, addLogObserver, addURL, failed, finished, getLog, getSlaveName, getStepFactory, releaseLocks, runCommand, setBuild, setBuildSlave, setProgress, setupProgress, slaveVersion, slaveVersionIsOlderThan, startStep

Inherited from process.properties.PropertiesMixin: __providedBy__, getProperties, getProperty, hasProperty, has_key, render, setProperty

Class Variables
  name = 'cvs'
  renderables = ['cvsroot']

Inherited from Source: branch, description, descriptionDone, flunkOnFailure, haltOnFailure, notReally

Inherited from process.buildstep.LoggingBuildStep: cmd, logfiles, parms, progressMetrics

Inherited from process.buildstep.BuildStep: __implemented__, alwaysRun, build, doStepIf, flunkOnWarnings, hideStepIf, locks, progress, set_runtime_properties, step_status, useProgress, warnOnFailure, warnOnWarnings

Method Details

__init__(self, cvsroot=None, cvsmodule='', global_options=[], branch=None, checkoutDelay=None, checkout_options=[], export_options=[], extra_options=[], login=None, **kwargs)
(Constructor)

source code 
Parameters:
  • cvsroot (string) - CVS Repository from which the source tree should be obtained. '/home/warner/Repository' for local or NFS-reachable repositories, ':pserver:anon@foo.com:/cvs' for anonymous CVS, 'user@host.com:/cvs' for non-anonymous CVS or CVS over ssh. Lots of possibilities, check the CVS documentation for more.
  • cvsmodule (string) - subdirectory of CVS repository that should be retrieved
  • login (string or None) - if not None, a string which will be provided as a password to the 'cvs login' command, used when a :pserver: method is used to access the repository. This login is only needed once, but must be run each time (just before the CVS operation) because there is no way for the buildslave to tell whether it was previously performed or not.
  • branch (string) - the default branch name, will be used in a '-r' argument to specify which branch of the source tree should be used for this checkout. Defaults to None, which means to use 'HEAD'.
  • checkoutDelay (int or None) - if not None, the number of seconds to put between the last known Change and the timestamp given to the -D argument. This defaults to exactly half of the parent Build's .treeStableTimer, but it could be set to something else if your CVS change notification has particularly weird latency characteristics.
  • global_options (list of strings) - these arguments are inserted in the cvs command line, before the 'checkout'/'update' command word. See 'cvs --help-options' for a list of what may be accepted here. ['-r'] will make the checked out files read only. ['-r', '-R'] will also assume the repository is read-only (I assume this means it won't use locks to insure atomic access to the ,v files).
  • checkout_options (list of strings) - these arguments are inserted in the cvs command line, after 'checkout' but before branch or revision specifiers.
  • export_options (list of strings) - these arguments are inserted in the cvs command line, after 'export' but before branch or revision specifiers.
  • extra_options (list of strings) - these arguments are inserted in the cvs command line, after 'checkout' or 'export' but before branch or revision specifiers.
Overrides: process.buildstep.BuildStep.__init__

computeSourceRevision(self, changes)

source code 

Each subclass must implement this method to do something more precise than -rHEAD every time. For version control systems that use repository-wide change numbers (SVN, P4), this can simply take the maximum such number from all the changes involved in this build. For systems that do not (CVS), it needs to create a timestamp based upon the latest Change, the Build's treeStableTimer, and an optional self.checkoutDelay value.

Overrides: Source.computeSourceRevision
(inherited documentation)