From: Martin Mares Date: Fri, 3 Oct 2003 16:41:42 +0000 (+0000) Subject: Added a simple utility for generating changelogs. X-Git-Tag: holmes-import~1206 X-Git-Url: http://mj.ucw.cz/gitweb/?a=commitdiff_plain;h=5ad68ba19acfb9054325b7449a6a14fec47051ad;p=libucw.git Added a simple utility for generating changelogs. --- diff --git a/build/cvslog b/build/cvslog new file mode 100755 index 00000000..feded092 --- /dev/null +++ b/build/cvslog @@ -0,0 +1,48 @@ +#!/usr/bin/perl +# Process `cvs log' output to get a resonable changelog +# (c) 2003 Martin Mares + +use Digest::MD5; +use POSIX; + +while () { + chomp; + /^$/ && next; + /^RCS file: / || die; + $_ = ; + chomp; + my ($file) = /^Working file: (.*)$/ or die; + #print "$file\n"; + do { + $_ = or die; + } while (!/^description:/); + $_ = ; + for(;;) { + /^======/ && last; + if (/^------/) { $_ = ; next; } + /^revision / || die; + $_ = ; + my ($yy,$mm,$dd,$HH,$MM,$SS) = /^date: (....)\/(..)\/(..) (..):(..):(..);/ or die; + my $t = POSIX::mktime($SS,$MM,$HH,$dd,$mm-1,$yy-1900) or die; + my $T = sprintf("%06d", int(($t + 1800)/3600)); + $d = ""; + while ($_ = ) { + /^(-----|=====)/ && last; + $d .= $_; + } + my $id = "$T:" . Digest::MD5::md5_hex($d); + if (!defined $msg{$id}) { + $date{$id} = "$yy-$mm-$dd $HH:$MM:$SS"; + $msg{$id} = $d; + $files{$id} = ""; + } + $files{$id} .= "\t* $file\n"; + #print "\t$id\n"; + } +} + +foreach $id (sort keys %date) { + print "### ", $date{$id}, "\n\n"; + print $files{$id}, "\n"; + print $msg{$id}, "\n"; +}