For almost as long as I've been working on Leonardo, I've been thinking about Subversion as a persistence layer. In fact, some of the design of Leonardo's current persistence layer (LFS = Leonardo File System) was inspired by Subversion and I've long thought about an alternative LFS implementation that sits directly on Subversion.
Adding the persistence layer to Demokritos I thought about starting out with Subversion right away so I've been doing some investigation.
The SWIG-based Python bindings that Subversion comes with scared me off pretty quickly. Then I found pysvn which provides a much more Pythonic (and well documented) interface to Subversion.
The problem is that pysvn assumes that you are checking out to a local workspace, which is not what I want. I just want to be able to send and receive Python strings, not create a workspace, have Demokritos read/write files from/to that workspace and then use pysvn to check-out/commit.
But it doesn't appear possible with pysvn. Not because of a limitation of pysvn itself but because the Subversion client API doesn't support it.
It would seem to me that it would still be possible to use Subversion the way I want to but it would involve one of
Subversion itself doesn't seem to expose the bits I need (certainly not in Python)
UPDATE: Literally seconds after posting this, Chris Curvey responded to a query I made on the pysvn mailing list and pointed me to a session given by Greg Stein at OSCON. The abstract for the session mentioned SubWiki which looks like it might be doing what I want to do (although it may still use a local workspace). Investigating more. Maybe I should just ask Greg.
UPDATE (2006-02-09): Good news! Now see Using the Python Subversion Binding.
The original post was in the categories: python subversion leonardo demokritos but I'm still in the process of migrating categories over.
The original post had 3 comments I'm in the process of migrating over.