Subversion's meta-data is used to determine an entry's creation date. Subversion is a Open Source replacement for CVS. This plugin is recommend for those who are already familiar with Subversion or other source control systems such as CVS.
This plugin deviates as little as possible from the Pyblosxom philosophy. Pyblosxom still retrieves its lists of known entries from the file system. The plugin assumes that those files are committed members of a Subversion working copy.
This plugin works particularly well with a staging server. Entries can be created, edited, and committed on the staging server. The live server is then updated with a simple svn up command.
External Requirements
This plugin requires external OpenSource software not provided with Pyblosxom
or this plugin.
- Subversion client and server
- Memcached server
- Memcached python client
The plugin requires that your entries reside in a Subversion working copy.
More information is available
here. This document assumes you
are familiar with Subversion, and Subversion client and server installation is
beyond its scope.
Unfortunately the performance of the Subversion creation date query prevents it from
being used stand alone for dynamic page creations. Memcached is used to cache the creation
date results returned by Subversion, which yields acceptable performance of dynamic
page creation. Memcached is a general purpose, high performance memory cache originally
developed for LiveJournal.com. More
information on Memcached is available at their website.
Installation
- Download Memcached server from here, and install according to their instructions.
- Download Memcached python client from here and install according to their instructions.
- Download svnfilestat.py and svnbirthday.py and place them in your pyblosxom plugin directory.
- start local Memcached server with:
memcached -d -m 16 -l 127.0.0.1
note: this must be be running for the plugin to work. You might want to consider
added this command to your startup scripts.
- Install Subversion client and server according to their documentation note: Subversion is now supported on many distributions. For instance it can be easily installed on Fedora 2 & 3 with:
yum install subversion
Known Issues
If an entry exists in the blog path that isn't added to the working copy, an
exception is thrown and Internal Server Error results. I think the best way
to handle this would be to have the pyblosxom core catch the exception and
ignore the entry. Unfortunately this can not be done via a plugin. This should
be addressed in a future revision.
Acknowledgements
Thanks to Subversion developer C. Michael Pilato who wrote the svnbirthday module for a reasonable fee.