[Buildbot-devel] client-side subversion ChangeSource?

Marnix Klooster marnix.klooster at gmail.com
Wed Mar 15 06:00:46 UTC 2006


John Pye wrote:

>Sorry, I forgot to put in what the error message was. Running the 'cmd'
>that gets output by my script, I see:
>  
>
>>[buildslave at cruncher2 ~]$ buildbot sendchange
>>--master=cruncher2.dyndns.org:9989 --revision="445"
>>--username="johnpye" --comments="Fixing script"
>>/code/trunk/pygtk/interface/configure.in
>>change NOT sent
>>[Failure instance: Traceback from remote host -- Traceback (most
>>recent call last):
>>  File "/usr/lib/python2.4/site-packages/twisted/spread/pb.py", line
>>1734, in remote_respond
>>    d = self.portalWrapper.portal.login(self, mind, IPerspective)
>>  File "/usr/lib/python2.4/site-packages/twisted/cred/portal.py", line
>>94, in login
>>    return maybeDeferred(c.requestAvatarId, credentials
>>  File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py",
>>line 214, in addCallback
>>    callbackKeywords=kw)
>>  File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py",
>>line 205, in addCallbacks
>>    self._runCallbacks()
>>--- <exception caught here> ---
>>  File "/usr/lib/python2.4/site-packages/twisted/internet/defer.py",
>>line 338, in _runCallbacks
>>    self.result = callback(self.result, *args, **kw)
>>  File "/usr/lib/python2.4/site-packages/buildbot/master.py", line
>>529, in requestAvatar
>>    p = self.botmaster.getPerspective(avatarID)
>>  File "/usr/lib/python2.4/site-packages/buildbot/master.py", line
>>402, in getPerspective
>>    return self.slaves[slavename]
>>exceptions.KeyError: 'change'
>>]
>>    
>>
>Any ideas?
>

As you wrote, the solution is to have

    from buildbot.changes.pb import PBChangeSource
    c['sources'].append(PBChangeSource())

in master.cfg.  (It is there in the sample delivered with 0.7.2, but 
commented out.)  However, since this is something that multiple people 
run into (it certainly had me stumped for more than 1.5 hours), it might 
be a good idea to enable the above lines in the sample master.cfg.  
Also, well, the 0.7.2 manual kind of mentions this in the 
'PBChangeSource' section: "This is used by the built-in buildbot 
sendchange notification tool [...]"; and again a hint in the 'branch 
example' of the SVN checkout section.  But I overlooked those, and found 
nothing special mentioned in the 'sendchange' section itself.

Back to the original topic, I'm currently also using client-side change 
detection for CVS: I want to run buildbot on a CVS repositories where I 
can't get commit signals from the server (and can't be bothered to try 
and get them, set up mail appropriately, etc.)  What works fine for me, 
is to have a local checkout of the repository, and then regularly run 
"cvs -q update".  If there were changes in CVS this will print the 
changed files, and update the repository so it won't see those same 
changes again later.

Just run a script that does that regularly, and you're all set.  
Probably others are already doing that; just thought this could be 
useful to share.

Groetjes,
 <><
Marnix

P.S.  Although it is simple, some might find the actual script useful 
that I just started to use (see attachment).
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: sendcvschange
URL: <http://buildbot.net/pipermail/devel/attachments/20060315/83d15779/attachment.ksh>


More information about the devel mailing list