I just wanted to announce to the CVS community that I've made a new log
parsing tool available, called cvslog2web. This is a Python script
which converts CVS commit log output into any or all of three different
formats:
- Atom syndication format (a standardized version of RSS, from IETF)
- XHTML "recently updated" index (standalone or fragment)
- Individual log entry pages ("permalinks")
Some of the notable features include:
- Smart parsing -- merges consecutive log entries for files
committed with the same log message into single update. (keeps
cross-directory commits together, a naïve implementation would list
each directory as a separate commit)
- Compact file listing, streamlines the list of file names. An
update of:
/foo/bar/baz
/foo/bar/moo
/foo/bar/pow/zing
becomes just one line:
/foo/bar/{baz,
moo, pow/zing}
- Files listed in the log can be links to ViewCVS/ViewVC for
web-based diffs (or other such package, the URL is configurable).
- Support for spaces in file names! (not easy considering the
format of output CVS provides to scripts like this, sigh...)
- Detailed CSS style support, structure of permalink pages very
configurable
- Valid XML output via Python's xml.dom module. (not some
error-prone string parsing I hacked together)
You can download the script and some default CSS files from:
http://ethan.tira-thompson.com/cvslog2web/
Another example of cvslog2web usage is found here (see sidebar):
http://tekkotsu.no-ip.org/
(staging server, to be moved to main website shortly)
Enjoy!
-ethan
|