Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Traversing SVN Tree

by blahblahblah (Priest)
on Mar 01, 2008 at 03:56 UTC ( #671333=note: print w/replies, xml ) Need Help??

in reply to Traversing SVN Tree

Are you talking about traversing a local checked-out copy of the repository? If so, then there should be nothing special about svn directories: -d, -f, stat, etc. should work normally. Can you post your code? Also check out File::Find.

If on the other hand you're talking about querying the subversion server, then you can get the info with a subversion command such as svn list -R. For example:

my $repos = q{svn://.../trunk}; my $svn = q{/usr/local/bin/svn}; my $tree = qx{$svn list -R $repos}; print $tree;

Replies are listed 'Best First'.
Re^2: Traversing SVN Tree
by brwarn (Novice) on Mar 06, 2008 at 05:56 UTC
    Sorry for the delay. I modified code that I found but get out of memory errors after six or so file names are listed. I see in the File::Slurp documentation that there's a way to read just filenames (and not the entire file contents as I believe that I'm doing below), but am not sure what to do with the following to just read the filenames.
    #!/usr/bin/perl use strict; use warnings; use File::Slurp; use File::Find; my $dir="C:\\Documents and Settings\\Administrator\\Desktop\\SVN\\trun +k"; # read an entire file into a scalar (a.k.a. 'slurping') find( \&show_subdirectories, $dir); sub show_subdirectories{ if ( -d ) { if ( $_ eq '.svn' ) { # don't traverse into subversion related directories $File::Find::prune = 1; return; } # for directories, only print path my $filepath ="$File::Find::name"; return; } -f or return; # if not a file /\.(xls|mdb)$/ or return; # if not the right extension my $perl = read_file( $_ ); my $filepath="$File::Find::name"; my @filearray=split(/\\trunk\//,$filepath); my $fileElt = $filearray[1]; print "FILEARRAY is $fileElt and FILE is $_\n"; }
      This line is reading in the file contents:
      my $perl = read_file( $_ );
      If you don't want to read the file contents, then just remove that line.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://671333]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (5)
As of 2017-04-28 21:34 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (529 votes). Check out past polls.