There are a variety of ChangeSources available, some of which are meant to be used in conjunction with other tools to deliver Change events from the VC repository to the buildmaster.
As a quick guide, here is a list of VC systems and the ChangeSources that might
be useful with them. All of these ChangeSources are in the
buildbot.changes module. The contrib/ scripts mentioned below
are available on github - see Contrib Scripts.
CVScontrib/buildbot_cvs_mail.py script)
buildbot sendchange run in a loginfo script)
contrib/viewcvspoll.py polling process which examines the ViewCVS database directly
status.web.change_hook)
SVNcontrib/svn_buildbot.py run in a postcommit script)
contrib/svn_watcher.py or contrib/svnpoller.py polling
process
status.web.change_hook)
contrib/googlecode_atom.py's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode SVN repository)
Darcscontrib/darcs_buildbot.py in a commit script
status.web.change_hook)
Mercurialbuildbot/changes/hgbuildbot.py run as an in-process 'changegroup'
hook)
status.web.change_hook)
contrib/googlecode_atom.py's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode Mercurial repository)
Bzr (the newer Bazaar)contrib/bzr_buildbot.py run in a post-change-branch-tip or commit hook)
contrib/bzr_buildbot.py's BzrPoller (polling the Bzr repository)
status.web.change_hook)
Gitcontrib/git_buildbot.py run in the post-receive hook)
contrib/github_buildbot.py, which listens for notifications from github)
gitpoller.GitPoller (polling a remote git repository)
Repo/Gitgerritchangesource.GerritChangeSource connects to Gerrit via SSH to get a live stream of changes
Monotonemonotone-buildbot.lua, which is available with monotone)
All VC systems can be driven by a PBChangeSource, and the
buildbot sendchange tool run from some form of commit script.
If you write an email parsing function, they can also all be driven by
a suitable MaildirSource. Additionally, handlers for web-based
notification (i.e. from github) can be used with WebStatus' change_hook
module. The interface is simple, so adding your own handlers (and sharing!)
should be a breeze.