Catching Up

Posted by Victor on November 19, 2003
Let's start with Subversion

I’ve grown a taste for Subversion. Never have actually made much use of CVS or RCS either, so I can’t really speak about their limitations, but the fact that it hasn’t much of their limitations makes me feel good about using SVN.

I thougt about a better view of browsing the source trees, since the normal view isn’t very appropiated for anything more than casual browsing, as it is intended for updating your local source trees rather than navigating around.

I settled for ViewCVS, which also has support for SVN. Or at least that’s what I deducted from reading mailing lists and browsing the CVS tree at SourceForge. Unfortunately, the last released version of ViewCVS has been 0.9.2 for a long time, and it doesn’t incorporate the support for SVN, and since the FreeBSD ports tree is mostly based on stable released versions, I got all kind of problems trying to browse my SVN repositories with that version, until I was told to use the CVS version. Which I did, and finally I was able to browse them with a niftier interface.

One of the hurdles I had to jump was that the FreeBSD version of Subversion (which I got updated in the process) does not build the SWIG bindings (that is, the bindings for languages like Perl and Python) by default. I had to hack the Makefiles to got them to build, and it wasn’t an easy feat. I won’t post the details since they escape me after so many tests and because they seem to change from version to version. In the end, I could build them with no small effort, and it is no wonder that the current port maintainer prefers to disable them.

I looked for other uses I could put <a href=”http://subversion.tigris.org/>Subversion</a> to. In its site I found a WikiClone that used the Python bindings. Unfortunately, I couldn’t get it to work.

While looking for documentation on the bindings, I fell upon the SVN::perl development tree, which were the basis for the perl bindings that now are integrated in Subversion. The tree can be browsed using a similar approach to ViewCVS, but using SVN::Web, which uses the Perl bindings themselves to access and serve a repository.

I had considered for a long time to install a wiki on this website. After the frustrating attempt to install subwiki, I decided I’d look for a wiki implemented in Perl. Since I didn’t wan’t to spend too much time installing and configuring the WikiEngine, I looked into the ports tree. This reduced the choice to Twiki and Kwiki. After reading some comments on the Barcelona.pm mailing list, I decided to begin by installing Kwiki.

Kwiki

Kwiki is a simple Wiki that allows for an easy customization and extension. After a few hours playing with it, I discovered it was the right choice. The CSS selectors in its default template match those of Movable Type, that’s why the wiki resembles so much the main site. There are also plugins, which I’ll install in due time, to allow for wiki content to be pulled into a MT site. I also discovered a nifty extension made by Taiwanese Perl hacker Autrijus Tang, of PAR fame (of the same perl programmers team as the author of SVN::perl ), that allows for the metabase (the content and its changes) to be backed up by a SVN Repository.

As I said, Kwiki is easily extendable. I will be sending some patches soon. I tried to configure Kwiki to be run as a mod_perl module, however, it is not quite ready for mod_perl 2, there are still some glitches to be ironed out. This is something that I’d like to improve, too.