cvslog2web Homepage

cvslog2web provides a link between your CVS commits and web output, via several formats:

DownloadDownload package includes the cvslog2web.py script, default style sheet, and some feed and navigation icons. Documentation for installation and configuration is found at the beginning of the script.

Requirements

cvslog2web requires Python 2.3 or better, and requires only the standard modules. Development has targeted the Free Software Foundation's CVS, tested with 1.11.20 under Mac OS X, and 1.11.17 under Fedora Core 3. The CVSNT fork may work (not tested). Other implementations of CVS probably have a different log output format, and may require modifying the "Input Parsing" section of the script.

Features

I wrote this because I was frustrated with the difficult dependencies, lack of features, and/or lack of customization in other offerings. Features of cvslog2web include:

Installation

cvslog2web is written in Python (version 2.3 or higher), and easily hooked into your CVS system by adding the following line to your loginfo file:

ALL python path/to/cvslog2web.py $CVSROOT %{sVv} [config-file]

You can either customize configuration settings at the top of the script itself, or you can supply an optional config-file argument (as shown above) to override any or all settings. If a relative path is specified for config-file, it is interpreted relative to the location of the cvslog2web.py script. As an example, you can view the configuration file used for this site.

Note that the ALL keyword is a filter used by CVS to determine which files should be run through the specified command. By adding a series of entries to loginfo, it is possible to register the script for multiple, specific modules within your repository, each with a separate configuration file, and thus each generating a dedicated feed for that module.

Finally, I recommend storing the script in the CVSROOT directory of your repository. This guarantees that anyone who has access to commit into the repository also has access to run the script. If you follow this advice, path/to/ would be $CVSROOT/CVSROOT/

The download package also includes some stylesheet and images. The default placement for these files depends on the directory layout of your website, and can be controlled to varying degree by configuration settings:

Porting

Released under the GPL, you're welcome to hack around with the script. Although I prefer to support the Atom standard, it probably wouldn't be too hard to convert the feed output to one of the RSS format variants if you prefer.

Of more interest, I would love to see support for a Subversion hook. I know websvn has support for RSS feeds on a global or per-directory basis, but it lacks a number of the other features listed above. I think cvslog2web has nicer output format as well, such as more informative titles for entries in the feed.

Contact and Feedback

cvslog2web was written by Ethan Tira-Thompson. Please submit bug fixes, new features, etc. to ejtttje AT gmail.com