[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [patch] fix peg revision calculation

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Tue, 15 Jun 2010 19:48:31 +0200

On 15.06.2010 19:38, Julian Foad wrote:
> Stefan Küng wrote:
>> Any comments on this please?
>>
>> On Wed, Jun 9, 2010, Stefan Küng<tortoisesvn_at_gmail.com> wrote:
>>> The following script fails with both 1.6.x and trunk:
>>>
>>> svnadmin create testrepo
>>> svn co file:///d:/development/svn/svntests/testrepo testwc
>>> cd testwc
>>> echo test> file.txt
>>> svn add file.txt
>>> svn ci -m ""
>>> echo test2> file.txt
>>> svn ci -m ""
>>> echo test> file2.txt
>>> svn add file2.txt
>>> svn ci -m ""
>>> svn ren file.txt file3.txt
>>> svn ci -m ""
>>> svn cat file3.txt_at_4 -r3
>>>
>>> svn: Unable to find repository location for 'file3.txt' in revision 3
>>>
>>> Note: if the commits of file2.txt are not done (i.e., there's no revision
>>> between the asked rev and the rename), then it works.
>
> Hi Stefan.
>
> First, I don't like writing "file3.txt_at_4" but I note that exactly the
> same result occurs if I write "svn cat ^/file3.txt_at_4 -r3".
>
> Look at the log of file3.txt:
>
> $ svn log -vq file3.txt
> ------------------------------------------------------------------------
> r4 | julianfoad | 2010-06-15 18:26:31 +0100 (Tue, 15 Jun 2010)
> Changed paths:
> D /file.txt
> A /file3.txt (from /file.txt:2)
> ------------------------------------------------------------------------
> r2 | julianfoad | 2010-06-15 18:25:56 +0100 (Tue, 15 Jun 2010)
> Changed paths:
> M /file.txt
> ------------------------------------------------------------------------
> r1 | julianfoad | 2010-06-15 18:25:29 +0100 (Tue, 15 Jun 2010)
> Changed paths:
> A /file.txt
> ------------------------------------------------------------------------
>
> The history of file3.txt doesn't include r3: in r4 it was copied from
> r2. r3 does contain a 'file.txt' that is connected to file3.txt_at_4 by a
> common ancestor, but I don't think we intend that to be the result of
> this query.
>
> It seems to me it already works as intended. What do you think?

When I specify
svn cat ^/file3.txt_at_4 -r3
that means I like the content of the file named file3.txt as it was
located in r4, but as it looked in r3. I think that's what a peg
revision is for: I want to look at a path in an earlier revision where I
have no idea what location it has in that revision, so I give the peg
revision for the path I know in that revision.

since ^/file3.txt_at_4 existed in r3 (it was named file.txt in r3), I think
that command has to work. Otherwise what's the point of peg revisions?
If I have to first check the whole log to find the name of the file in
the revision I want, I don't need peg revisions.

So I really think even though this might be intended, it's not what
users (and me neither) expect.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
Received on 2010-06-15 19:49:14 CEST

This is an archived mail posted to the Subversion Dev mailing list.