The following patch against bleadperl makes MakeMaker ignore Subversion files,
as it does with CVS/RCS/SCCS files. (Subversion files are kept in .svn/
subdirectories in each directory under version control.)

[Note that bleadperl has apparently MakeMaker 6.03, while the CPAN version
is 6.05. I found this a bit frustrating (especially because I would be very
happy if my patch could make its way into bleadperl rapidly.)
So I guess that the plan would be to update the CPAN version and then
to integrate it into bleadperl.]

Index: lib/ExtUtils/MANIFEST.SKIP
===================================================================
--- lib/ExtUtils/MANIFEST.SKIP
+++ lib/ExtUtils/MANIFEST.SKIP  Tue Oct 22 15:41:55 2002
@@ -2,6 +2,7 @@
 \bRCS\b
 \bCVS\b
 ,v$
+\.svn\b
 
 # Avoid Makemaker generated and utility files.
 ^MANIFEST\.bak
Index: lib/ExtUtils/Manifest.pm
===================================================================
--- lib/ExtUtils/Manifest.pm
+++ lib/ExtUtils/Manifest.pm    Tue Oct 22 15:46:10 2002
@@ -467,6 +467,7 @@
     \bRCS\b
     \bCVS\b
     ,v$
+    \.svn\b
 
     # Makemaker generated files and dirs.
     ^MANIFEST\.
Index: lib/ExtUtils/MM_Unix.pm
===================================================================
--- lib/ExtUtils/MM_Unix.pm
+++ lib/ExtUtils/MM_Unix.pm     Tue Oct 22 15:51:01 2002
@@ -1376,7 +1376,7 @@
        require File::Find;
         File::Find::find(sub {
             if (-d $_){
-                if ($_ eq "CVS" || $_ eq "RCS"){
+                if ($_ eq "CVS" || $_ eq "RCS" || $_ eq ".svn"){
                     $File::Find::prune = 1;
                 }
                 return;
@@ -2366,7 +2366,7 @@
 
 Takes a path to a file that is found by init_dirscan and returns false
 if we don't want to include this file in the library. Mainly used to
-exclude RCS, CVS, and SCCS directories from installation.
+exclude RCS, CVS, SCCS and Subversion directories from installation.
 
 =cut
 
@@ -2374,7 +2374,7 @@
 
 sub libscan {
     my($self,$path) = @_;
-    return '' if $path =~ m:\b(RCS|CVS|SCCS)\b: ;
+    return '' if $path =~ m:\b(RCS|CVS|SCCS|\.svn)\b: ;
     $path;
 }
 
Index: lib/ExtUtils/t/MM_Unix.t
===================================================================
--- lib/ExtUtils/t/MM_Unix.t
+++ lib/ExtUtils/t/MM_Unix.t    Tue Oct 22 15:55:39 2002
@@ -18,7 +18,7 @@
         plan skip_all => 'Non-Unix platform';
     }
     else {
-        plan tests => 112;
+        plan tests => 113;
     }
 }
 
@@ -168,7 +168,8 @@
 is ($t->libscan('RCS'),'','libscan on RCS');
 is ($t->libscan('CVS'),'','libscan on CVS');
 is ($t->libscan('SCCS'),'','libscan on SCCS');
-is ($t->libscan('Fatty'),'Fatty','libscan on something not RCS, CVS or SCCS');
+is ($t->libscan('.svn'),'','libscan on Subversion');
+is ($t->libscan('Fatty'),'Fatty','libscan on something not RCS, CVS, SCCS or SVN');
 
 ###############################################################################
 # maybe_command
Index: lib/ExtUtils/MM_MacOS.pm
===================================================================
--- lib/ExtUtils/MM_MacOS.pm
+++ lib/ExtUtils/MM_MacOS.pm    Tue Oct 22 15:52:58 2002
@@ -544,7 +544,7 @@
        require File::Find;
        File::Find::find(sub {
            if (-d $_){
-               if ($_ eq "CVS" || $_ eq "RCS"){
+               if ($_ eq "CVS" || $_ eq "RCS" || $_ eq ".svn"){
                    $File::Find::prune = 1;
                }
                return;
@@ -582,7 +582,7 @@
 
 Takes a path to a file that is found by init_dirscan and returns false
 if we don't want to include this file in the library. Mainly used to
-exclude RCS, CVS, and SCCS directories from installation.
+exclude RCS, CVS, SCCS and Subversion directories from installation.
 
 =cut
 
@@ -590,7 +590,7 @@
 
 sub libscan {
     my($self,$path) = @_;
-    return '' if $path =~ m/:(RCS|CVS|SCCS):/ ;
+    return '' if $path =~ m/:(RCS|CVS|SCCS|\.svn):/ ;
     $path;
 }
End of Patch. 

Reply via email to