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

Re: svn_client_log3() doesn't work as advertised

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2006-04-19 22:58:50 CEST

Philip Martin wrote:
> Stefan Küng <tortoisesvn@gmail.com> writes:
>
>> Seems it doesn't recognize that trunk\file2 was still named trunk\file
>> in revision 3 and only renamed in revision 4.
>
> A simpler recipe:
>
> svnadmin create repo
> svn co file://`pwd`/repo wc
> touch wc/foo
> svn add wc/foo
> svn ci -m r1 wc
> svn ps x x wc
> svn ci -m r2 wc
> svn mv wc/foo wc/bar
> svn ci -m r3 wc
>
> Now
>
> $ svn log -vq wc/bar@3
> ------------------------------------------------------------------------
> r3 | pm | 2006-04-19 21:28:46 +0100 (Wed, 19 Apr 2006)
> Changed paths:
> A /bar (from /foo:1)
> D /foo
> ------------------------------------------------------------------------
> r1 | pm | 2006-04-19 21:28:43 +0100 (Wed, 19 Apr 2006)
> Changed paths:
> A /foo
> ------------------------------------------------------------------------
>
> but
>
> $ svn log -vq wc/bar@3 -r2:1
> ../svn/subversion/libsvn_client/ra.c:821: (apr_err=195012)
> svn: Unable to find repository location for 'file:///home/pm/sw/subversion/obj/repo/bar' in revision 2
>
> That looks like a bug to me. The "@3" is unnecessary and the bug
> still occurs if I use an URL rather than a wc path.
>
> I've never really looked at the peg code before, but as far as I can
> tell the problem occurs in svn_repos_trace_locations. I don't fully
> understand the algorithm but it gets called with fs_path "/bar",
> peg_revision 3, and location_revisions_orig of "2" and it identifies
> the foo->bar copy at r3 but it doesn't put anything in the locations
> array.
>
> I suspect this the same problem as issue 2496.

Issue 2496 seems like the reason for the first problem. But the second
one with the working copy as the peg revision seems different. I think
that one is because the wc path is converted to an URL before the peg
revision takes effect, and a wc peg revision doesn't make sense for URL's.
When I stepped through the code of svn_client_log3(), the path was
converted to an URL very early, even with 'wc' as the peg revision. I
think that's the bug there, not issue 2496.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Apr 19 22:59:33 2006

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.