cvs2rss - an RSS feed of CVS checkins <p> <h2>cvs2rss - generate an RSS feed of CVS checkins</h2> <blockquote> follow along at home, play arm chair project manager, track sneaky developers attempts to slip in poorly commented code, all without leaving the comfort of your favorite RSS aggregator. (or something like that) </blockquote> </p> <p> <h3>CVS and the Web</h3> cvs2rss.pl is designed to be used in conjunction with a web-based CVS repository. cvs2rss.pl will use URLs into this web-based repository as the URLs in the feed. Currently cvs2rss.pl only supports <a href="http://viewcvs.sf.net">ViewCVS</a> (the CGI used by Sourceforge among others), but its designed to support others. </p> <p> <h3>Requirements</h3> <ul> <li>cvs <li>Perl <li><a href="http://www.red-bean.com/cvs2cl">cvs2cl.pl</a> <li>XML::Simple</li> <li>XML::RSS</li> </ul> </p> <p> <p> <h3>Getting Started:</h3> <ul> <li><a href="http://laughingmeme.org/cvs2rss/cvs2rss-current.tar.gz">Download It</a></li> <li>You'll need to have a local checkout of the project you want to monitor, cvs2rss.pl doesn't handle that. It will work better if you either use pserver or ssh-agent to avoid an interactive prompt.</li> <li>Make a suitable config file, you can modify conf.xml to do this.</li> </ul> </p> <p> <h3>Some CVS RSS Feeds:</h3> I maintain a few feeds from projects I'm involved with. If you want to me to add one, contact me, or better yet, download cvs2rss.pl and maintain your own. <ul> <li><a href="http://dev.protest.net/~kellan/cvs-rss/XML-RSS.rdf">XML::RSS Checkins</a> - Keep up-to-date with the standard for parsing RSS in perl.</li> <li><a href="http://dev.protest.net/~kellan/cvs-rss/DateTime_cvs.rdf">DateTime checkins</a> - The Perl DateTime Suite is an impressive attempt to build a unified date handling solution. Its ready to use now, and improving daily.</li> <li><a href="http://dev.protest.net/~kellan/cvs-rss/magpie_cvs.rdf">MagpieRSS checkins</a> - MagpieRSS is an attempt to build a powerful, simple, flexible, and standards compliant RSS parser. Development is sporadic, but always interesting :)</li> <li><a href="http://dev.protest.net/~kellan/cvs-rss/mir_cvs.rdf">Mir checkins</a> - Mir is a second generation, open publishing solution, developed for Indymedia.</li> </ul> </p> <p> <h3>Caveats</h3> It generates useful, informative RSS feeds for the handful of projects I tested it on. But: <ul> <li>This is a hack, a neat hack built on top of the excellent hack that is cvs2cl.pl. A better solution would be support in web repository (e.g. <a href="http://viewcvs.sf.net">ViewCVS</a>)</li> <li>CVS doesn't really support this concept of "most recent commit", so we crawl the entire project to find all recent commits. Take this into account when using this script. (apparently <a href="http://subversion.tigris.org/">Subversion</a> will make this all better!)</li> <li>I don't try to do anything intelligent with cacheing, or using date offsets (even though they're supported by CVS2RSS.pm)</li> <li>I make no attempt to encode any entities, if you've got entities in your CVS logs that will be illegal in the RSS, use the latest development release of XML::RSS. (update: use <a href="http://search.cpan.org/dist/XML-RSS/">XML::RSS 1.02</a> or higher)</li> <li>I wrote this today so that I didn't have to get out of bed, it was written in one 4 hour session without food or coffee, so use at your risk (update: I've had food, coffee, and a month of elapsed time. Still seems to work)</li> </ul> </p> <p> <h3>Todo</h3> Make cvs2rss.pl smarter about cacheing, and passing in intelligent date parameters. </p> <p> <h3>Info</h3> <ul> <li>Author: kellan at protest.net</li> <li>License: GPL</li> <li>Release: .02-alpha</li> </ul> </p>