cvs2cl.pl: A script for converting CVS log messages to
ChangeLog files.
The latest version is 2.73, released 12
November, 2011.
NOTICE (March 2021):
cvs2cl still works fine but it is no longer actively maintained.
Martyn Pearce stepped down many years ago after a long and successful
stint as cvs2cl's maintainer (thanks, Martyn!). The original author,
Karl Fogel, continues to accept patches. The most recent patch
(applied 2011-11-12) was from Yuri Lebedev and added the
--xml-stylesheet option.
Overview
cvs2cl is Perl script that does what you think it does:
it produces a GNU-style ChangeLog
for CVS-controlled sources, by running "cvs log" and parsing the
output. Duplicate log messages get unified in the Right Way.
There is also XSLT available to convert
the ChangeLog output to HTML.
To report a bug, please use the issue
tracker. In your report, include the exact command you ran,
what you expected to happen, how what you got differed from what
you expected, and whatever excerpt of 'cvs log' output
is necessary to reproduce the problem. A patch to fix the bug
is always welcome, of course. (Due to, ahem, historical
reasons, cvs2cl's old bug tickets are kept in this file. We haven't bothered to port
them over to the new issue tracker, but anyone is welcome to
do so.)
You can view a Unix-style man page for cvs2cl by using
perldoc:
perldoc cvs2cl.pl
XML Mode & XSLT, XSD
cvs2cl is capable of producing XML output.
David Carlson (davidwcarlson at hotmail dot
com) has come up with a draft dtd
and schema for cvs2cl's XML output.
Here's an XSL stylesheet kindly
donated by Daniel Ciaglia (daniel at ciaglia dot
de), that's a variant on the html XSLT below, with the
following amendments:
DOCTYPE changed to HTML 4.01;
removed the xmlns:cvs2cl definition
switched encoding to iso-8859-1
Example output from this stylesheet may be seen here Daniel also contributed a bash script to use with XSLT
transformations.
Here's a development of Daniel's
stylesheet kindly donated by Alexander Ruether that features:
Colored headlines
Convert linefeeds to <br>
via javascript you can show/hide the concerned files
Here's an XSL stylesheet kindly
donated by Joseph Walton (joe at kafsemo dot
org) that generates RSS output from changelogs in XML mode
(requires 2.51 for the isoDate patch).
Here's an XSL stylesheet
that kind donator Nicolas Karageuzian (nicolas at
karageuzian dot com) describes as "quick and dirty", that
generates rss and html using a table with colour changing for files
Here's a simple xslt (1.0) example for
converting the XML output to XHTML. It really is a very simple example,
for I am no expert: it's just a starting point. If anybody else has a
nicer application to share, please send it to the bug address, and I'll
post it here.
Here's an XSD, kindly donated by Yury
Lebedev (yurylebedev at mail dot
ru), that can translate cvs2cl.pl's XML output into DataSet
from MS dotNet Framework or can be used to validate/transform XML output
data types in DOM document. Instead of XDR, this XSD can be used 'as is'
without any modification of XML output - it's necessary only attach this
XSD as separate 'schema' for 'http://www.red-bean.com/xmlns/cvs2cl/'
namespace before loading such XML into a DOM document (depending on used
XML parser implementation).
Release History:
2011-11-12:
2.73 released:
New --xml-stylesheet option, contributed by
Yuri Lebedev.
2007-04-23:
2.62 released, with several
bugfixes:
One by Gary Duzan to tolerate dot when matching tag names.
One by Alexey Panchenko to support Windows output paths
better.
Another by Alexey Panchenko to call subprocesses on Windows
correctly.
2005-05-17:
2.59 released, with one
bugfix.
2004-11-07:
2.58 released, with several
bugfixes
2004-07-10:
2.57 released, with several
bugfixes; most notably to handle the date output from the new cvs 1.12.9
server.
2004-05-15:
2.54 released, with a couple of
new features. An XSLT donated by Alexander Ruether was also added.
2004-03-07:
2.53 released, a bugfix
release
2004-03-06:
Added XSLT donated by Nicolas
Karageuzian
2004-01-20:
The structure of cvs2cl has
been significantly altered with the release of 2.52, introducing a
number of classes (all still within the one file), into which the major
subroutines have been placed.
2004-01-05:
Integrated Peter Palfrader's
manpage (original)
into the POD for cvs2cl.
2003-12-09:
2.51 released. A new set of bug fixes, and a couple of minor
features.
2003-11-26:
Here's an XSL stylesheet kindly
donated by Joseph Walton (joe at kafsemo
dotorg) generates RSS output from changelogs in XML mode
(requires 2.51 for the isoDate patch).
2003-08-25:
2.50 released. A new set of bug fixes, and a couple of minor
features.
2003-08-24:
Here's
a simple xslt (1.0) example for converting the XML output to
HTML. It really is a very simple example, for I am no expert: it's
just a starting point. If anybody else has a nicer application to
share, please send it to the bug address, and I'll post it here.
2003-06-21:
2.49 released. A new set of bug fixes, and an improvement to the
indenting style.
2003-04-22:
2.48 released. A stack of bugs have been fixed, and new features
added
2002-11-23:
A number of bugs have recently been fixed, and a new bugs-status page has been created
2002-05-23:
Martyn J. Pearce is the new
maintainer of cvs2cl. This site remains cvs2cl's home site, and bug
reports, patches, suggestions & pizza coupons should
still be sent to the bug-cvs2cl at
red-bean dot com mailing list.
David Carlson (davidwcarlson at hotmail
dot com) has come up with a draft dtd and schema for cvs2cl's XML output.
Examples
Here is cvs2cl.pl generating several flavors of its own ChangeLog.
Note that all of these invocations also used the "--fsf"
option (omitted below for brevity), because a few log entries were
written in FSF-style as an experiment.
cvs2html
cvs2html is a program which converts CVS log data to HTML. It
apparently organizes the data by file rather than by commit, which may
be less or more useful than cvs2cl depending on your needs.
CVSps
CVSps is a program for generating 'patchset' information from a CVS
repository. A patchset in this case is defined as a set of changes
made to a collection of files, and all committed at the same time
(using a single 'cvs commit' command). This information is valuable to
seeing the big picture of the evolution of a cvs project. While cvs
tracks revision information, it is often difficult to see what changes
were committed 'atomically' to the repository.
filter-cvs2cl.xslt
This is an XSL stylesheet kindly donated by Joseph Walton (joe at kafsemo dotorg) generates RSS
output from changelogs in XML mode (requires 2.51 for the isoDate
patch).
cl2html.xslt
This is a simple xslt file as a starting point for converting the XML
output of cvs2cl.pl to HTML. It really is just an
example, and a pretty tatty one at that. If you enhance it, or have
other examples of xslt for cvs2cl.pl (or, come to that,
Enhanced DTD/Schema/RelaxNG, etc. for the cvs2cl.pl XML output), and
are willing to share, please mail them to the bugs address, and they
too will be posted here!
cl2html.plcl2html.pl converts the XML outputted by cvs2cl.pl's
C<--xml> option to HTML or XHTML code.
This is essentially similar to the XSLT above, but done in perl
instead. Suitable for the more dromedarian among us.
cvs2cl.pl used for the gentoo.org website
"You'll remember that in Part 2 of this series I mentioned that the
cvs2cl.pl CVS Changelog generation script (see Resources) could
produce XML output and that I wanted to eventually use this feature as
the basis for a daily CVS Changelog page that would appear on the new
Web site. Now, with the new XML backend in place, adding the new
Changelog page is a piece of cake. Here's an enhanced version of the
cvslog.sh script that also takes care of handling the XML-to-HTML
conversion:"