diff options
author | joe <joe@FreeBSD.org> | 2002-10-17 16:29:26 +0000 |
---|---|---|
committer | joe <joe@FreeBSD.org> | 2002-10-17 16:29:26 +0000 |
commit | 14c86ef8ad65fcded3886bdb2becd7c856b0d8c5 (patch) | |
tree | 81e31828031760128a6d418f1cf7e35120742a9f /tools | |
parent | d156d1195f509624362f2c5a1cd5762b8042fa50 (diff) | |
download | FreeBSD-src-14c86ef8ad65fcded3886bdb2becd7c856b0d8c5.zip FreeBSD-src-14c86ef8ad65fcded3886bdb2becd7c856b0d8c5.tar.gz |
Fix a bug that showed up when trying to produce a database for
subdirectories, and ended up making us loop forever.
Add the username to the md5 of the commit to make it slightly more
unique.
Make the 'cvs' run quietly.
Diffstat (limited to 'tools')
-rw-r--r-- | tools/tools/commitsdb/make_commit_db | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/tools/tools/commitsdb/make_commit_db b/tools/tools/commitsdb/make_commit_db index 7b0fee7..d33d4780 100644 --- a/tools/tools/commitsdb/make_commit_db +++ b/tools/tools/commitsdb/make_commit_db @@ -19,21 +19,21 @@ while (@dirs) { my %logs; opendir DIR, $dir or die $!; - foreach (grep { /[^\.]/ } readdir DIR) { - my $filename = "$dir/$_"; + foreach my $f (grep { /[^\.]/ } readdir DIR) { + my $filename = "$dir/$f"; if (-f $filename) { my %loghash = parse_log_message($filename); next unless %loghash; $logs{$filename} = {%loghash}; - } elsif (-d $_) { - next if /^CVS$/; - push @dirs, $_; + } elsif (-d $filename) { + next if $filename =~ /\/CVS$/; + push @dirs, $filename; } } close DIR; - # Product a database of the commits + # Produce a database of the commits foreach my $f (keys %logs) { my $file = $logs{$f}; foreach my $rev (keys %$file) { @@ -58,7 +58,7 @@ sub parse_log_message { my $file = shift; # Get a log of the file. - open LOG, "cvs -R log $file |" or die $!; + open LOG, "cvs -R log $file 2>/dev/null |" or die $!; my @log = <LOG>; my $log = join "", @log; close LOG; @@ -77,11 +77,14 @@ sub parse_log_message { my $rev = $1; # Strip off any other headers. - while ($e =~ s/^(date|branches):[^\n]*\n//sg) { + my $user; + while ($e =~ s/^(date|branches):([^\n]*)\n//sg) { + my $sub = $2; + $user = $1 if $sub =~ /author: (.*?);/; }; my $hash = string_to_hash($e); - $loghash{$rev} = $hash; + $loghash{$rev} = "$user:$hash"; } return %loghash; |