You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Daniel Rall <dl...@collab.net> on 2007/06/11 20:48:20 UTC

Re: Sparse directories unbackwardly compatible over ra_dav

This patch is functionally solid.

Initializing depth to svn_depth_infinity (instead of
svn_depth_unknown) would achieve nearly the same behavior, but
wouldn't handle the case where the client did send svn_depth_unknown
over the wire.  I'm +1 on this patch.

Nitpick: Extraneous whitespace above the line starting with
"if (!saw_depth && ..."

On Tue, 29 May 2007, Kamesh Jayachandran wrote:

> Attached patch fixes the issue.
> 
> All tests that pass over ra_dav.
> 
> Somehow I think initialing 'depth' to 'svn_depth_infinity' is a much 
> simpler way to solve this problem.
> 
> 
> With regards
> Kamesh Jayachandran
> Kamesh Jayachandran wrote:
> >r24968 has attempted to fix that only for non-recursive case '-N switch'.
> >
> >With regards
> >Kamesh Jayachandran
> >
> >
> >Malcolm Rowe wrote:
> >>Hi all,
> >>
> >>I haven't got time to look into this at the moment, but I thought I'd
> >>post to the list in case someone else does (or in case it is/was a known
> >>problem at the moment).
> >>
> >>It appears that the sparse-directory protocol changes aren't backward
> >>compatible; attempts to checkout or update from a 1.4.3 (e.g.) client
> >>against a trunk server (r25053) give something like:
> >>
> >> svn: REPORT request failed on '/foo/!svn/vcc/default'
> >> svn: Unsupported report depth 'unknown'
> >>
> >>Regards,
> >>Malcolm
> >>  
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
> >For additional commands, e-mail: dev-help@subversion.tigris.org
> >
> 

> [[[
> Checkout and Update only sends 'recursive' tag to 'update-report' when invoked
> in a non-recursive fashion with a '-N' switch.
> 
> * subversion/mod_dav_svn/reports/update.c
>   (dav_svn__update_report):
>    When 'recursive' and 'depth' tag does not exist set depth to 'infinity'.
> 
> Patch by: kameshj
> Found by: malcolm
> ]]]

> Index: subversion/mod_dav_svn/reports/update.c
> ===================================================================
> --- subversion/mod_dav_svn/reports/update.c	(revision 25175)
> +++ subversion/mod_dav_svn/reports/update.c	(working copy)
> @@ -918,6 +918,7 @@
>    svn_boolean_t text_deltas = TRUE;
>    svn_depth_t depth = svn_depth_unknown;
>    svn_boolean_t saw_depth = FALSE;
> +  svn_boolean_t saw_recursive = FALSE;
>    svn_boolean_t resource_walk = FALSE;
>    svn_boolean_t ignore_ancestry = FALSE;
>    dav_svn__authz_read_baton arb;
> @@ -1048,6 +1049,7 @@
>               When both "depth" and "recursive" are sent, we don't
>               bother to check if they're mutually consistent, we just
>               let depth dominate. */  
> +          saw_recursive = TRUE;
>          }
>        if (child->ns == ns && strcmp(child->name, "ignore-ancestry") == 0)
>          {
> @@ -1074,7 +1076,10 @@
>              text_deltas = FALSE;
>          }
>      }
> -          
> +     
> +    if (!saw_depth && !saw_recursive && (depth == svn_depth_unknown))
> +      depth = svn_depth_infinity;
> +
>    /* If the client never sent a <src-path> element, it's old and
>       sending a style of report that we no longer allow. */
>    if (! src_path)
> 

Re: Sparse directories unbackwardly compatible over ra_dav

Posted by Kamesh Jayachandran <ka...@collab.net>.
Daniel Rall wrote:
> This patch is functionally solid.
>
> Initializing depth to svn_depth_infinity (instead of
> svn_depth_unknown) would achieve nearly the same behavior, but
> wouldn't handle the case where the client did send svn_depth_unknown
> over the wire.  I'm +1 on this patch.
>
> Nitpick: Extraneous whitespace above the line starting with
> "if (!saw_depth && ..."
>   

Thanks Dan.
Committed in r25374.

With regards
Kamesh Jayachandran

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org