Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

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


Comment on Re: Traversing SVN Tree
Download Code
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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://671333]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2015-08-01 03:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (285 votes), past polls