> From: Olivier Antoine [mailto:oliviera201...@gmail.com] 
> Sent: Tuesday, June 11, 2013 4:45 PM
> To: users@subversion.apache.org
> Subject: Re: History in subversion
>
> Thanks for your help, I will try again this.
> But this is very poor compared to ClearCase. Nobody tried to script that ?

I used to use ClearCase in a past life (3.0 - 6.0).  I haven't missed the 
ability to diff dirs.  You might be stuck on doing things the CC way instead of 
learning the Subversion paradigms.  It's going to be frustrating for a little 
while (it was for me.)

What are you trying to do that requires diff'ing the contents of directories?


> It is also possible to read the SVN repository without checkout, there is a 
> way to address an element, something like this :
> <element url>@revnumber
> But it is not possible to use a syntax like this :
> <directory>@revnumber/<file>

You want to read up on peg revisions:  
http://svnbook.red-bean.com/en/1.7/svn.advanced.pegrevs.html  

You don't need to specify the rev for each path in the component, e.g. 
"/view/foo/path@1/foo@2/bar@3/j.java@5".  In SVN, the rev number is global, so 
you just "/path/foo/bar/j.java@5".


> I tried, it doesn't work.
> Actually, I just try to analyze all elements, files and directories, 
> contained in a SVN repository. I'd like to be able to parse all the elements 
> - if possible without any checkout (that would be great).

Use "svn export" (or for individual files, "svn cat")

> Other challenge is : I need to restore a file element that has been removed 
> in a very old revision, and of course I don't know which one.
> Any search command or script with Subversion ?

You'll need to use a peg revision, e.g. "svn copy svn://..../path/foo.java@1234 
."  To find the revision that the file was in can be tricky if you have deleted 
a parent dir.  In the average case, you can run "svn log -v -q ^/path/to/branch 
> log.txt".  Then search the text file for your missing file to get the 
revision.  You can also use "svn log -v -q | egrep '^r|\/foo.java'".  Worse 
case (you deleted a parent dir), you'll need to run the 'svn log' against the 
root of the repository (svn log -v -q ^/).


To re-emphasize, I'm very serious about the need to stop trying to apply CC 
paradigms to SVN.  It's frustrating, and, in my experience, the CC way of doing 
things didn't provide significant advantages in (or over) SVN.



Reply via email to