blob: 239e7704f5d20f60d9faa6b11d1587e62185a020 [file] [log] [blame]
#!/usr/bin/perl -w
# a script to munge the output of 'svn log' into something approaching the
# style of a GNU ChangeLog.
#
# to use this, just fill in the 'hackers' hash with the usernames and
# name/emails of the people who work on your project, go to the top level
# of your working copy, and run:
#
# $ svn log | /path/to/gnuify-changelog.pl > ChangeLog
%hackers = ( "jimb" => 'Jim Blandy <jimb@redhat.com>',
"sussman" => 'Ben Collins-Sussman <sussman@collab.net>',
"kfogel" => 'Karl Fogel <kfogel@collab.net>',
"gstein" => 'Greg Stein <gstein@lyra.org>',
"brane" => 'Branko Cibej <brane@xbc.nu>',
"joe" => 'Joe Orton <joe@light.plus.com>',
"ghudson" => 'Greg Hudson <ghudson@mit.edu>',
"lefty" => 'Lee P. W. Burgess <lefty@red-bean.com>',
"fitz" => 'Brian Fitzpatrick <fitz@red-bean.com>',
"mab" => 'Matthew Braithwaite <matt@braithwaite.net>',
"daniel" => 'Daniel Stenberg <daniel@haxx.se>',
"mmurphy" => 'Mark Murphy <mmurphy@collab.net>',
"cmpilato" => 'C. Michael Pilato <cmpilato@collab.net>',
"kevin" => 'Kevin Pilch-Bisson <kevin@pilch-bisson.net>',
"philip" => 'Philip Martin <philip@codematters.co.uk>',
"jerenkrantz" => 'Justin Erenkrantz <jerenkrantz@apache.org>',
"rooneg" => 'Garrett Rooney <rooneg@electricjellyfish.net>',
"bcollins" => 'Ben Collins <bcollins@debian.org>',
"blair" => 'Blair Zajac <blair@orcaware.com>',
"striker" => 'Sander Striker <striker@apache.org>',
"XelaRellum" => 'Alexander Mueller <alex@littleblue.de>',
"yoshiki" => 'Yoshiki Hayashi <yoshiki@xemacs.org>',
"david" => 'David Summers <david@summersoft.fay.ar.us>',
"rassilon" => 'Bill Tutt <rassilon@lyra.org>',
"kbohling" => 'Kirby C. Bohling <kbohling@birddog.com>', );
$parse_next_line = 0;
while (<>) {
# axe windows style line endings, since we should try to be consistent, and
# the repos has both styles in it's log entries.
$_ =~ s/\r\n$/\n/;
if (/^-+$/) {
# we're at the start of a log entry, so we need to parse the next line
$parse_next_line = 1;
} elsif ($parse_next_line) {
# transform from svn style to GNU style
$parse_next_line = 0;
@parts = split (/ /, $_);
print "$parts[5] $hackers{$parts[3]}\n";
} else {
print "\t$_";
}
}