You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by cm...@apache.org on 2010/09/15 21:27:29 UTC
svn commit: r997471 - /subversion/trunk/subversion/libsvn_client/list.c
Author: cmpilato
Date: Wed Sep 15 19:27:29 2010
New Revision: 997471
URL: http://svn.apache.org/viewvc?rev=997471&view=rev
Log:
For issue #3709 ("Inconsistency between "svn list" and "svn
checkout"), ignore authz errors raised when recursing.
* subversion/libsvn_client/list.c
(get_dir_contents): Catch and ignore SVN_ERR_RA_NOT_AUTHORIZED and
SVN_ERR_RA_DAV_FORBIDDEN errors returned from the server.
Modified:
subversion/trunk/subversion/libsvn_client/list.c
Modified: subversion/trunk/subversion/libsvn_client/list.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/list.c?rev=997471&r1=997470&r2=997471&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/list.c (original)
+++ subversion/trunk/subversion/libsvn_client/list.c Wed Sep 15 19:27:29 2010
@@ -63,14 +63,23 @@ get_dir_contents(apr_uint32_t dirent_fie
apr_hash_t *tmpdirents;
apr_pool_t *iterpool = svn_pool_create(pool);
apr_array_header_t *array;
+ svn_error_t *err;
int i;
if (depth == svn_depth_empty)
return SVN_NO_ERROR;
- /* Get the directory's entries, but not its props. */
- SVN_ERR(svn_ra_get_dir2(ra_session, &tmpdirents, NULL, NULL,
- dir, rev, dirent_fields, pool));
+ /* Get the directory's entries, but not its props. Ignore any
+ not-authorized errors. */
+ err = svn_ra_get_dir2(ra_session, &tmpdirents, NULL, NULL,
+ dir, rev, dirent_fields, pool);
+ if (err && ((err->apr_err == SVN_ERR_RA_NOT_AUTHORIZED) ||
+ (err->apr_err == SVN_ERR_RA_DAV_FORBIDDEN)))
+ {
+ svn_error_clear(err);
+ return SVN_NO_ERROR;
+ }
+ SVN_ERR(err);
if (ctx->cancel_func)
SVN_ERR(ctx->cancel_func(ctx->cancel_baton));