We use Subversion for version control at work. I wanted to get some RSS/Atom feeds of the commits people were making to various repositories, but for some reason, our WebSVN installation (which would have given me the feeds I wanted) was broken. So I decided to quickly hack something together to produce a feed from the svn log output.

It took a lot more of my free time to get the rough edges smoothed than I would have liked, but it's good enough to use now so I thought I would share:
You can try it out in demo mode here, source code here.
The Subversion Log Feed Generator is a single PHP source file. It doesn't require root access to set-up or run and installation is as simple as copying it into your public_html directory.
When run initially, it displays a form to provide the various options. When the form is submitted, the script passes the form contents to itself via the query string. When called with a query string, the parameters are extracted and processed, then used to run the svn log command with appropriate switches. The output from svn log is piped through an XML processor that converts it into Atom format and outputs the results. Because the parameters to produce the feed are passed via the query string, the URL can be bookmarked and used in feed readers so the same script can serve feeds for many different Subversion repositories.
One complication of the implementation is that the script runs as the www-data user under Apache. This causes the svn log command to prompt for acceptance of the certificate used by https:// style subversion URLs, which hangs the script's execution until the prompt is answered. This is worked around by having the script pipe to stdin of the svn log process and automatically answer the prompt by sending "t" for "(t)emporarily accept the certificate".
--limit switch now available for svn log. This did not exist in the version of svn I was originally using. Instead, a date is used to limit output to log only the commits since that date, which could be a lot, or could be none, depending on how hard everyone has been working.svn log! So do not deploy this on a public server unless you are really really confident you'll be able to take the load (which you won't)Hopefully someone will find it useful, please contact me if you do. Code is released under the Creative Commons Attribution-ShareAlike License