mirror of
https://github.com/samba-team/samba.git
synced 2025-01-05 09:18:06 +03:00
ea27af285a
after a given date. I use it to help update the WHATSNEW.txt for a
release.
./cvslog.pl SAMBA_2_2 '>2002-06-18' configure.in
The output is a little messy right now, but I plan to clean that up.
(This used to be commit 8812223e2a
)
103 lines
1.8 KiB
Perl
Executable File
103 lines
1.8 KiB
Perl
Executable File
#!/usr/bin/perl -w
|
|
|
|
my ( $tag, $filename, $date );
|
|
my ( $tmp, $change_flag );
|
|
|
|
if ( $#ARGV != 2 ) {
|
|
|
|
print "Usage: ", $0, " cvstag date file\n";
|
|
exit 1;
|
|
}
|
|
|
|
$tag = $ARGV[0];
|
|
$date = $ARGV[1];
|
|
$filename = $ARGV[2];
|
|
|
|
print STDERR "$filename\n";
|
|
|
|
open ( CVSLOG, "cvs log -d\"$date\" $filename |" ) || die $!;
|
|
|
|
##
|
|
## First get the branch revision number
|
|
##
|
|
undef $revision;
|
|
while ( !defined($revision) ) {
|
|
if ( eof( \*CVSLOG ) ) {
|
|
print STDERR "Premature end of cvs log output!\n";
|
|
exit (1);
|
|
}
|
|
|
|
$string = <CVSLOG>;
|
|
chomp( $string );
|
|
|
|
if ( $string =~ /$tag:/ ) {
|
|
( $tmp, $revision ) = split( /:/, $string );
|
|
$revision =~ s/\s+//g;
|
|
$revision =~ s/\.0\./\./g;
|
|
}
|
|
}
|
|
|
|
##
|
|
## Setup the beginning of the first record
|
|
##
|
|
$string = "";
|
|
while ( $string !~ /^-+/ ) {
|
|
$string = <CVSLOG>;
|
|
exit(0) if ( eof(\*CVSLOG) );
|
|
}
|
|
|
|
##
|
|
## Loop starting at the revision number for the entry
|
|
##
|
|
|
|
while ( $string = <CVSLOG> ) {
|
|
|
|
($tmp, $entry_rev) = split( /\s+/, $string );
|
|
if ( equal_revision( $revision, $entry_rev ) ) {
|
|
if ( ! defined($change_flag) ) {
|
|
print "++++++++++++++++++++++++++++++++++++++++++++++++++\n";
|
|
print "## $filename\n";
|
|
print "++\n";
|
|
$change_flag = 1;
|
|
}
|
|
|
|
while ( $string !~ /^-+/ && !eof(CVSLOG) ) {
|
|
print "$string";
|
|
$string = <CVSLOG>;
|
|
}
|
|
}
|
|
else {
|
|
while ( ($string !~ /^-+/) && !eof(CVSLOG) ) {
|
|
$string = <CVSLOG>;
|
|
}
|
|
}
|
|
}
|
|
|
|
close( CVSLOG );
|
|
exit 0;
|
|
|
|
##############################################################
|
|
##
|
|
sub equal_revision {
|
|
my ( $branch, $newfile ) = @_;
|
|
my ( $indx );
|
|
my ( @branch_rev, @file_rev );
|
|
|
|
@branch_rev = split( /\./, $branch );
|
|
@file_rev = split( /\./, $newfile );
|
|
|
|
return 0 if ( $#branch_rev != ($#file_rev - 1) );
|
|
|
|
$indx = 0;
|
|
while( $indx <= $#branch_rev ) {
|
|
if ( $branch_rev[$indx] != $file_rev[$indx] ) {
|
|
return 0;
|
|
}
|
|
$indx++;
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
|