A couple of weeks ago, I kicked off the addition of SVN support to Bespin (bug 493038). This required two things: One was the actual ability to choose which VCS you’re using, as it defaulted to Hg and the auto-detection was primitive and long since functional. (There were rumors that it had even been missing from the code for a while already.) But that was the relatively easy part, as it was mostly just manipulating HTML.
The (relatively) harder part was writing the code that would do the actual work with SVN. (VCS support in Bespin is powered by UVC.) A factor in this difficulty was that the backend code is written in Python, which I’m not especially familiar with. Nevertheless, the process was actually simplified by the way things are set up, because I was able to copy the Hg code and just modify to fit the SVN commands. I was able to add basic checkout, commit, and update support, as well as username/password authentication. Kevin later came in and finished up the push/commit differentiation, among other things. I believe SSH support still needs to be done, but we’re looking for a method to use to do it. (Kevin has suggested using environmental variables, as SVN does not have the ability to pass SSH details via command line, like Hg does.)
Kevin and the other Bespin folks are in the process of getting the 0.4.0 release out the door today or in the next couple of days, and that will include this support for SVN, as well as collaboration.