You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Malcolm Rowe <ma...@farside.org.uk> on 2007/05/29 09:56:22 UTC

Sparse directories unbackwardly compatible over ra_dav

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

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

Re: Sparse directories unbackwardly compatible over ra_dav

Posted by Daniel Rall <dl...@collab.net>.
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>.
Malcolm Rowe wrote:
> On Tue, May 29, 2007 at 04:43:41PM +0530, 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.
>>
>>     
>
> Right; I think that your patch is effectively doing exactly that, but in
> a more complicated way :-).  I wonder if there's any reason we shouldn't
> assume infinity in the absence of a <depth> or <recurse> element?
>
> Regards,
> Malcolm
>   

I also think we should assume it to infinity due to the fact default 
behaviour is after all infinity.

With regards
Kamesh Jayachandran

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

Re: Sparse directories unbackwardly compatible over ra_dav

Posted by Malcolm Rowe <ma...@farside.org.uk>.
On Tue, May 29, 2007 at 04:43:41PM +0530, 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.
> 

Right; I think that your patch is effectively doing exactly that, but in
a more complicated way :-).  I wonder if there's any reason we shouldn't
assume infinity in the absence of a <depth> or <recurse> element?

Regards,
Malcolm

Re: Sparse directories unbackwardly compatible over ra_dav

Posted by Kamesh Jayachandran <ka...@collab.net>.
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
>


Re: Sparse directories unbackwardly compatible over ra_dav

Posted by Kamesh Jayachandran <ka...@collab.net>.
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