<html lang="en"> <head> <title>Configuring Change Sources - BuildBot Manual - 0.8.4p1</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="BuildBot Manual - 0.8.4p1"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="up" href="Change-Sources.html#Change-Sources" title="Change Sources"> <link rel="prev" href="Choosing-a-Change-Source.html#Choosing-a-Change-Source" title="Choosing a Change Source"> <link rel="next" href="Mail_002dparsing-ChangeSources.html#Mail_002dparsing-ChangeSources" title="Mail-parsing ChangeSources"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <!-- This is the BuildBot manual for Buildbot version 0.8.4p1. Copyright (C) 2005, 2006, 2009, 2010 Brian Warner Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.--> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Configuring-Change-Sources"></a> <p> Next: <a rel="next" accesskey="n" href="Mail_002dparsing-ChangeSources.html#Mail_002dparsing-ChangeSources">Mail-parsing ChangeSources</a>, Previous: <a rel="previous" accesskey="p" href="Choosing-a-Change-Source.html#Choosing-a-Change-Source">Choosing a Change Source</a>, Up: <a rel="up" accesskey="u" href="Change-Sources.html#Change-Sources">Change Sources</a> <hr> </div> <h4 class="subsection">4.7.2 Configuring Change Sources</h4> <p><a name="index-c_005b_0027change_005fsource_0027_005d-40"></a> The <code>master.cfg</code> configuration file has a dictionary key named <code>BuildmasterConfig['change_source']</code>, which holds the active <code>IChangeSource</code> object. The config file will typically create an object from one of the classes described below and stuff it into this key. <p>Each buildmaster typically has just a single ChangeSource, since it is only watching a single source tree. But if, for some reason, you need multiple sources, just set <code>c['change_source']</code> to a list of ChangeSources. <pre class="example"> s = PBChangeSource() c['change_source'] = [s] </pre> <p>Each source tree has a nominal <code>top</code>. Each Change has a list of filenames, which are all relative to this top location. The ChangeSource is responsible for doing whatever is necessary to accomplish this. Most sources have a <code>prefix</code> argument: a partial pathname which is stripped from the front of all filenames provided to that <code>ChangeSource</code>. Files which are outside this sub-tree are ignored by the changesource: it does not generate Changes for those files. <h3 class="heading">Repository and Project</h3> <p>ChangeSources will, in general, automatically provide the proper 'repository' attribute for any changes they produce. For systems which operate on URL-like specifiers, this is a repository URL. Other ChangeSources adapt the concept as necessary. <p>Many ChangeSources allow you to specify a project, as well. This attribute is useful when building from several distinct codebases in the same buildmaster: the project string can serve to differentiate the different codebases. Schedulers can filter on project, so you can configure different builders to run for each project. </body></html>