[Buildbot-devel] How does build request merging work?

David Coppit david at coppit.org
Mon Mar 21 15:40:41 UTC 2011

On Fri, Mar 18, 2011 at 9:29 PM, Dustin J. Mitchell <dustin at v.igoro.us>wrote:

> "Merging" BuildRequests is accomplished by generating a single build
> that will complete the entire set of merged requests.  As far as the
> database is concerned, there are still multiple BuildRequests.

To confirm my understanding, this query:

 concat("http://mobile-buildbot/builders/", buildername, '/builds/', number)
as url,
 builds.id as build_id,
 brid as buildrequest_id,
 buildsets.id as buildset_id,
 author, revision
from builds, buildrequests, buildsets, sourcestamp_changes, changes
 builds.brid = buildrequests.id
 and buildsets.id = buildrequests.buildsetid
 and sourcestamp_changes.sourcestampid = buildsets.sourcestampid
 and changes.changeid = sourcestamp_changes.changeid
 and buildername = 'foo' and number = 336

Would show how a single buildername+build number pair would map to multiple
build numbers, build requests, sourcestamps, and ultimately changes.

> Merging occurs when builds are scheduled on builders.

Perfect. We just need to define the merging function properly

> > If a change comes in, then a try build, then another change, is Buildbot
> smart enough to merge the first and third build request?
> Only if you teach it that with the various merging configuration options.

It looks to me like the merge function is called with two build requests.
Wouldn't the answer depend on whether it's called for all pairs of pending
build requests, as opposed to subsequent pairs?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://buildbot.net/pipermail/devel/attachments/20110321/2c3b9257/attachment.html>

More information about the devel mailing list