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);


Reply via email to