From: Jarkko Hietaniemi Date: Wed, 13 Aug 2003 13:46:18 +0000 (+0000) Subject: Add cmpVERSION.pl from Slaven for comparing two X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f1c5bace3cddb63bc864a4d515fe402f7e49136a;p=p5sagit%2Fp5-mst-13.2.git Add cmpVERSION.pl from Slaven for comparing two Perl source trees for modules that have changed but have the same version numbers. p4raw-id: //depot/perl@20678 --- diff --git a/MANIFEST b/MANIFEST index 09d6300..694c562 100644 --- a/MANIFEST +++ b/MANIFEST @@ -2398,6 +2398,7 @@ Porting/apply Apply patches sent by mail Porting/check83.pl Check whether we are 8.3-friendly Porting/checkURL.pl Check whether we have working URLs Porting/checkVERSION.pl Check whether we have $VERSIONs +Porting/cmpVERSION.pl Compare whether two trees have changed modules Porting/config.sh Sample config.sh Porting/config_H Sample config.h Porting/Contract Social contract for contributed modules in Perl core diff --git a/Porting/cmpVERSION.pl b/Porting/cmpVERSION.pl new file mode 100644 index 0000000..b335476 --- /dev/null +++ b/Porting/cmpVERSION.pl @@ -0,0 +1,38 @@ +#!/usr/bin/perl -w + +# +# cmpVERSION - compare two Perl source trees for modules +# that have identical version numbers but different contents. +# +# Original by slaven@rezic.de, modified by jhi. +# + +use strict; + +use ExtUtils::MakeMaker; +use File::Compare; +use File::Find; +use File::Spec::Functions qw(rel2abs abs2rel catfile catdir curdir); + +for (@ARGV[0, 1]) { + die "$0: '$_' does not look like Perl directory\n" + unless -f catfile($_, "perl.h") && -d catdir($_, "Porting"); +} + +my $dir2 = rel2abs($ARGV[1]); +chdir $ARGV[0] or die "$0: chdir '$ARGV[0]' failed: $!\n"; + +my @wanted; +find( + sub { /\.pm$/ && + do { my $file2 = + catfile(catdir($dir2, $File::Find::dir), $_); + return if compare($_, $file2) == 0; + my $version1 = eval {MM->parse_version($_)}; + my $version2 = eval {MM->parse_version($file2)}; + push @wanted, $File::Find::name + if $version1 eq $version2 + } }, curdir); +print map { $_, "\n" } sort @wanted; + +