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.
buildbot sendchangerun in a loginfo script)
contrib/viewcvspoll.pypolling process which examines the ViewCVS database directly
contrib/svn_buildbot.pyrun in a postcommit script)
contrib/googlecode_atom.py's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode SVN repository)
contrib/darcs_buildbot.pyin a commit script
buildbot/changes/hgbuildbot.pyrun as an in-process 'changegroup' hook)
contrib/googlecode_atom.py's GoogleCodeAtomPoller (polling the commit feed for a GoogleCode Mercurial repository)
Bzr (the newer Bazaar)
contrib/bzr_buildbot.pyrun in a post-change-branch-tip or commit hook)
contrib/bzr_buildbot.py's BzrPoller (polling the Bzr repository)
contrib/git_buildbot.pyrun in the post-receive hook)
contrib/github_buildbot.py, which listens for notifications from github)
gitpoller.GitPoller(polling a remote git repository)
gerritchangesource.GerritChangeSourceconnects to Gerrit via SSH to get a live stream of changes
monotone-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
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.