[Buildbot-devel] SvnSource poller

Brian Warner warner-buildbot at lothar.com
Mon Oct 2 00:25:15 UTC 2006


I spent the weekend working on the SvnSource code developed by Niklaus and
others, and have finally checked it in. Thank you guys so much for writing
this! I rearranged a lot of stuff.. I hope it still works in a useful way.

Could the folks who were involved with this take a look at the latest
CVS/Darcs and review my changes?

I changed the API so that for situations where you're only following trunk
you only have to provide one parameter, the svn URL that points at the top of
the tree of interest. If you want to follow multiple branches at once, you
have to provide a "split_file" function that knows about your branch naming
policy. There are a lot of docs and examples in the User's Manual that I hope
will explain how to use split_file().

I had to make a couple of functional changes to the way it extracts Change
information out of SVN:

 to get the filenames right, we need to know the root of the repository, so
 it does an "svn info" call before it does anything else. I might have missed
 a couple of slashes here and there, and/or error handling might be messed
 up.

 Rather than setting the Change's timestamp to the value provided by the SVN
 server (which seemed to be in the server's timezone when I tried it), I just
 had the ChangeMaster assign the current time to each Change as it is
 submitted. Before doing this, I found that the Changes appeared several
 hours in the future, messing up the Waterfall display.

 I took the unicode objects returned by minidom for filenames and forced them
 back into ascii, since sometimes they get included in commands and that
 would cause some problems. I left "comments" and "author" as unicode, but
 fixed up the HTML-rendering code that wasn't able to deal with it. I suspect
 that some other status targets may get screwed up by this, but I'd rather
 discover those and fix them than forbid unicode everywhere. Eventually I'd
 like everything to be unicode-clean but I suspect it will take a while.

If you could, please see if you can make the new code do the things that the
old code did. Hopefully I didn't break any of the functionality when I dived
in and started rearranging everything.

thanks,
 -Brian




More information about the devel mailing list