On Tue, Mar 30, 2010 at 03:21:45PM -0400, C. Michael Pilato wrote:
> Vincent Lefevre wrote:
> > On 2010-03-30 12:12:59 -0400, C. Michael Pilato wrote:
> >> Interactions in the working copy with the path some/file.c only make sense
> >> if there is actually such a path in the working copy.  If some/file.c is
> >> deleted in r51, then either it isn't in your working copy (because you've
> >> updated past r50) or it is, at r50 or earlier.  If it is, you run 'svn cat
> >> some/file.c' as usual.  If it isn't, then the path 'some/file.c' has no
> >> meaning anyway, so it falls to you to spelunk history and tell Subversion
> >> more precisely what object you're talking about.
> > 
> > I want a simple way to say: consider the current directory at r50
> > (walking back through the history) and the object some/file.c in
> > it at the same revision.
> 
> I'm sure you're not alone, but Subversion doesn't cleanly provide such a way
> today.
> 
> $ svn cat `svn info some/ -r50 | grep ^URL: | cut -c 6-`/fil...@50

Maybe we could some day extend peg revision syntax so that every
component of a path can be pegged?

So what Vincent wants would be something like this:

  $ svn cat ....@50/some/file.c

And make svn treat a double-@ as actual @:

  $ ls
  d...@example.com
  $ svn cat dir@@example.com/file.c

On the surface, this would be a natural extension to the current peg
rev syntax, which only looks for @ at the very end of the entire path.

Whoever actually does this should be well prepared for some serious
wrestling with the current APIs though... this would not be a simple
change. I guess it would easily size up to at least a google summer
of code project.

Stefan

Reply via email to