Class SourceStamp

This is a tuple of (branch, revision, patchspec, changes, project,
repository).

branch is always valid, although it may be None to let
the Source step use its default branch. There are three possibilities for
the remaining elements:

(revision=REV, patchspec=None, changes=None): build REV. If REV is
None, build the HEAD revision from the given branch. Note that REV
must always be a string: SVN, Perforce, and other systems which use
integers should provide a string here, but the Source checkout step
will integerize it when making comparisons.

(revision=REV, patchspec=(LEVEL, DIFF), changes=None): checkout REV,
then apply a patch to the source, with patch -pPATCHLEVEL
<DIFF. If REV is None, checkout HEAD and patch it.

(revision=None, patchspec=None, changes=[CHANGES]): let the Source
step check out the latest revision indicated by the given Changes.
CHANGES is a tuple of buildbot.changes.changes.Change instances, and all
must be on the same branch.