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

Re: [PATCH] fix broken svn_client_info

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: 2005-10-31 14:33:33 CET

Peter N. Lundblad wrote:
> On Mon, 31 Oct 2005, Stefan Küng wrote:
>> The following command fails with 1.3.x, even though it shouldn't:
>> svn info
>> http://tortoisesvn.tigris.org/svn/tortoisesvn/branches/release-0.20/src/TortoiseSVNSetup/TortoiseSVNSetup.vdproj@330
>> -r330
>> The reason is that same_resource_in_head() errors out if the URL doesn't
>> exist anymore in HEAD. In that case, it should just treat the HEAD as
>> unrelated instead.
> Stefan,
> Thanks for the patch. I'm not sure that this is the correct layer to fix
> the problem. Would you care to check if this happens in the other RA
> layers as well. This might be a bug deeper down in libsvn_ra_dav or
> libsvn_repos.

I don't think I can. I tried to find the place *where* this apr_error is
set and couldn't even find that! I thought I could find the error define
that way ;)

Also, I think this *is* the right place to fix this bug (but of course I
don't know the internals that well, so chances that I'm wrong are very

The function same_resource_in_head() calls svn_client__repos_locations()
which returns the error SVN_ERR_FS_NOT_FOUND. And as I see it, this is
correct if the path doesn't exist. But same_resource_in_head() is the
function which should not pass that error on, because it's docstring says:

/* Set *SAME_P to TRUE if URL exists in the head of the repository and
    refers to the same resource as it does in REV, using POOL for
    temporary allocations. RA_SESSION is an open RA session for URL. */

So *SAME_P* must not be TRUE if the URL does not exist in HEAD. Of
course, it isn't true without my patch either, but it throws an error
which it shouldn't in that case. IMHO same_resource_in_head() has to
check SVN_ERR_FS_NOT_FOUND too, because that's just one more sign that
not a 'real' error occurred but that the resources aren't the same.
Other errors like auth failures for example are 'real' errors for that
function too, but not SVN_ERR_FS_NOT_FOUND.

About other RA layers: this function is called from all RA layers, not
just DAV.


   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 Mon Oct 31 14:34:30 2005

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