Author: pgollucci Date: Wed Nov 8 18:58:44 2006 New Revision: 472749 URL: http://svn.apache.org/viewvc?view=rev&rev=472749 Log: recode get_svn_files() to work with SVN clients < 1.4.0 and 1.4.0+ simultaneously
[.svn dirs in 1.4.0+ are now a binary format not XML] Modified: perl/modperl/trunk/lib/ModPerl/Manifest.pm Modified: perl/modperl/trunk/lib/ModPerl/Manifest.pm URL: http://svn.apache.org/viewvc/perl/modperl/trunk/lib/ModPerl/Manifest.pm?view=diff&rev=472749&r1=472748&r2=472749 ============================================================================== --- perl/modperl/trunk/lib/ModPerl/Manifest.pm (original) +++ perl/modperl/trunk/lib/ModPerl/Manifest.pm Wed Nov 8 18:58:44 2006 @@ -40,26 +40,16 @@ my @files; my $cwd = Cwd::cwd(); - - finddepth({ follow => 1, wanted => sub { - return unless $_ eq 'entries'; - return unless $File::Find::dir =~ /\.svn$/; - - my $dir = dirname $File::Find::dir; - $dir =~ s,^$cwd/?,,; - - open my $fh, $_ or die "open $_: $!"; - while (my $line = <$fh>) { - if ($line =~ /name\s*=\s*"([^"]*)"/) { - my $file = $1; - next if $file eq 'svn:this_dir'; - next if !$file or -d "../$file" or $file =~ /^\./; - push @files, $dir ? "$dir/$file" : $file; - } + my @lines = `svn status -v` ; + foreach my $line (@lines) { + chomp $line; + if ($line =~ /(?:\d+)\s+(?:\d+)\s+(?:\w+)\s+(.*)\s*/) { + my $file = $1; + if (-e $file && ! -d $file) { + push @files, $1 if -e $1; + } } - close $fh; - - }}, $cwd); + } # files to add which aren't under svn push @files, qw(lib/ModPerl/DummyVersions.pm);