svnlook in 1.3 has a --full-paths option that I think does what
you want.
Also svn ls -R does something similar but will also work on a
remote repository.
-- bart
On 2006-2-6 Carl Spalletta <cspalletta@gmail.com> wrote:
 > Excuse me for reinventing the wheel, but I couldn't find an
 > existing script to convert output of 'svnlook tree' to the
 > usual unix format.
 > 
 > Hope this is useful to somebody.
 > 
 > Please give credit if you use the logic or code somewhere.
 > 
 > #!/usr/bin/perl -n
 > #Copyright (c) 2006 by Carl Spalletta cspalletta@gmail.com under GPL, v2
 > #This file takes the output of unix or svnlook 'tree' command, eg:
 > #
 > # trunk/
 > #  CVS-LEGACY/
 > #   cvswrappers
 > #   checkoutlist
 > #  PROJ1/
 > #   config
 > # branches/
 > #   ...
 > #
 > # And turns it into this:
 > #
 > #trunk/
 > #trunk/CVS-LEGACY/
 > #trunk/CVS-LEGACY/cvswrappers
 > #trunk/CVS-LEGACY/checkoutlist
 > #trunk/PROJ1/config
 > #branches/
 > # ...
 > 
 > BEGIN
 > {
 >   $level=0;
 >   $olevel=-1;
 > }
 > 
 > #count number of leading spaces
 > sub countlevels
 > {
 > my $line = shift;
 > my @ltrs = split "",$line;
 > my $levels;
 > 
 > for($levels=0;$levels<=$#ltrs;$levels++)
 >   {
 >   last unless $ltrs[$levels] =~ /^ $/;
 >   }
 > 
 > return $levels;
 > }
 > 
 > #chomp,print,next if /^\S/;
 > if(/^\S/)
 > {
 > if(m{^/})
 >   {
 >   chomp;
 >   print "$_";
 >   }
 > else
 >   {
 >   die "Extraneous garbage: $_";
 >   }
 > next
 > }
 > 
 > $level = countlevels $_;
 > if($level<$olevel)
 > {
 > for($i=$level;$i<$olevel;$i++)
 >   {
 >   $l[$i]="";
 >   }
 > }
 > 
 > $l[$level-1]=$_;
 > print "$line\n";
 > 
 > $line = join "/",@l;
 > 
 > $line =~ s/\s//g;
 > $line =~ tr/\///s;
 > 
 > $olevel=$level;
 > 
 > END
 > {
 > print "$line\n";
 > }
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Feb  7 00:23:53 2006