--- /dev/null
+#!/usr/bin/perl -w
+
+my %authors;
+
+open(AUTHORS, "< $ARGV[0]") || die @!;
+while (<AUTHORS>) {
+ chomp($_);
+ $_ =~ s/\s+=\s+/=/;
+ ($name, $userinfo) = split(/=/, $_);
+ $authors{$name} = $userinfo;
+}
+close(AUTHORS);
+
+open(INDATA, "< $ARGV[1]") || die @!;
+while (<INDATA>) {
+ chomp($_);
+ if ($_ =~ /^committer /) {
+ @lineinfo = split(/ /, $_);
+ if (!defined($authors{$lineinfo[1]})) {
+ die "No entry for \"$lineinfo[1]\" in $ARGV[0]!\n";
+ }
+ ($realname, $emailaddr) = split(/</, $authors{$lineinfo[1]});
+ $realname =~ s/\s+$//g;
+ $emailaddr =~ s/^\s+//;
+ print "committer $realname <$emailaddr $lineinfo[3] $lineinfo[4]\n";
+ } else {
+ print "$_\n";
+ }
+}
+close(INDATA);
--- /dev/null
+#!/usr/bin/perl -w
+
+my ($i, $body, $modified);
+
+for ($i=0; $i<3; $i++) {
+ <STDIN>;
+}
+
+while (<STDIN>) {
+ last if (!($_ =~ /^\s+$/));
+ $modified = 1;
+}
+
+$body = "$_";
+while (<STDIN>) {
+ $body = "$body$_";
+}
+
+print "$body" if (defined($modified));
--- /dev/null
+#!/usr/bin/perl -w
+
+my ($rev, $revlist, $badrevlist);
+
+open(REVS, "< $ARGV[0]") || die @!;
+while (<REVS>) {
+ chomp($_);
+ $revlist{$_} = 1;
+}
+close(REVS);
+
+open(BADREVS, "< $ARGV[1]") || die @!;
+while (<BADREVS>) {
+ chomp($_);
+ $badrevlist{$_} = "BADREV_";
+}
+close(BADREVS);
+
+
+while (<STDIN>) {
+ chomp($_);
+ $_ =~ s/^\s+//;
+
+ if ($_ =~ /^commit [a-f0-9]/) {
+ $_ =~ s/^commit //;
+ $hash = $_;
+ undef $rev;
+ } elsif ($_ =~ /^r[0-9]+:/) {
+ $_ =~ s/:.*//;
+ $_ =~ s/^r//;
+ $rev = $_;
+
+ if (defined($revlist{$rev}) > 0) {
+ print "$badrevlist{$rev}" if (defined($badrevlist{$rev}));
+ print "$hash\n";
+ }
+ }
+}
+
--- /dev/null
+#!/bin/sh
+
+cat $1 | grep ^r[1-9] | grep -v CVSIN | awk '{print $1}' | sed 's/^r//' > $1.revisions
+
--- /dev/null
+#!/bin/bash
+
+for rev in `seq 1 25600`; do
+ svn log -r$rev --incremental file:///data/src/mirror/svn/samba | ./fix-svn-log.pl > $rev
+ if [ ! -s $rev ]; then
+ /bin/rm $rev
+ else
+ echo "r$rev"
+ svnadmin setlog --bypass-hooks /data/src/mirror/svn/samba -r$rev $rev
+ fi
+done