pysvn is one of those packages I use only occasionally but every time I need it, it comes up to scratch. And the simplicity of the API combined with the helpful examples covering all the major uses means that I’m up-and-running in minutes. Seconds, even.
The latest bacon-salvation need arose from code.google.com’s apparent inability to accept large commits to its Subversion repositories. I was getting spurious 502 errors again and again. So, one 10-line script later and we’re committing 100 changes at a go. Took a while but it worked.
import pysvn
svn = pysvn.Client ()
while True:
adds = [f.path for f in svn.status (".")
if f.text_status == pysvn.wc_status_kind.added]
if not adds: break
added = adds[:100]
print "Added", added[0], "to", added[-1],
"leaving", len (adds) - len (added)
svn.checkin (added, "Suitable message")
Brilliant! Thanks, pysvn.