[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 15:45:48 CET

Peter N. Lundblad wrote:
> On Mon, 31 Oct 2005, Malcolm Rowe wrote:
>
>> On Mon, Oct 31, 2005 at 02:33:33PM +0100, Stefan Küng wrote:
>>> 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:
>> You're not running against a 1.0.x server, are you? Because in that case,
>> we call slow_locations(), which can return either SVN_ERR_FS_NOT_FOUND
>> or APR_EGENERAL if it failed to find some of the revisions.
>>
> Oh, I really like that APR_EGENERAL:-)
>
> I've tracked it down now. It is because of svn_fs_node_history called from
> check_ancestor_of_peg_path in libsvn_repos/rev_hunt.c. That will fail,
> which I think is inconsitent, becuasee if I interpret the code correct,
> revisions that predate the creation revision for path won't cause this
> error.
>
> *But*, we'll have to do something on the client, since this is a server
> bug. I'm not sure if STefan's patch or hacking something into
> svn_client_repos_locations is the best thing to do here.

I think fixing this in svn_client_repos_locations is better. New patch
attached.

Stefan

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.tigris.org

[[[
Don't error out if an URL does not exist in HEAD.

* subversion/libsvn_client/ra.c
  (svn_ra_dav__get_locations): Don't return 'not found' errors but
  but return SVN_ERR_CLIENT_UNRELATED_RESOURCES instead.
]]]
Index: subversion/libsvn_client/ra.c
===================================================================
--- subversion/libsvn_client/ra.c (Revision 17107)
+++ subversion/libsvn_client/ra.c (Arbeitskopie)
@@ -811,7 +811,7 @@
                                peg_revnum, start_revnum, end_revnum,
                                path, ra_session, ctx, subpool));
     }
- else
+ else if (err->apr_err != SVN_ERR_FS_NOT_FOUND)
     return err;
 
   /* We'd better have all the paths we were looking for! */

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Oct 31 15:47:22 2005

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.