svnlog 1.6

I'm starting to switch to Subversion for some things, particularly for Debian packages but increasingly for other projects as well. Subversion has a much saner post-commit hook system than CVS does, and commit notification scripts were one of the early projects. I'd heard rather good things about the ones that come with Subversion, and figured that I wouldn't need my own script this time.

Unfortunately, what's there, while not as bad as the stuff that comes with CVS, is still pretty disappointing.

The Perl stuff does hardly anything, so skip that. mailer.py is the apparent best of breed, and it does have a lot of features for choosing what diffs you want to see and configuring it depending on what portion of the tree you're making commits in. That stuff is pretty nice, if not that interesting for me.

However, it's still missing what I consider to be basic features. It doesn't do diffstat summaries. It doesn't put any effort into producing a nice looking e-mail message, with real names in the From line for instance. It still generates those hideous, meaningless, 10-line Subject headers. Configuration could be easier. In general, it's just not what I want.

So, despite the fact that I'm doing it the "wrong" way and parsing command output rather than using the bindings, and despite the fact that I'm writing yet another commit reporting script rather than improving one of the existing ones, I took my cvslog script, spent about a day hacking on it (mostly hacking bits off of it, since Subversion is actually sane and doesn't require all the bizarre command-line parsing and multiple commit merging nonsense), and produced svnlog. I think I got the option parsing and configuration file handling right this time; it's a lot cleaner than cvslog, and at some point I should backport the work. I also hacked in support for tagging Debian bugs as pending based on mentions of bugs in debian/changelog commits, just for the hell of it.

I don't know if it anyone will end up using it other than me (and Stanford repositories I run, of course), but it does what I want and the other stuff doesn't.

You can get the latest version from the svnlog distribution page.

Posted: 2005-06-04 22:21 — Why no comments?

Last spun 2013-07-01 from thread modified 2013-01-04