kot...@apache.org wrote on Mon, Sep 21, 2015 at 15:19:46 -0000:
> Author: kotkov
> Date: Mon Sep 21 15:19:40 2015
> New Revision: 1704317
> 
> URL: http://svn.apache.org/viewvc?rev=1704317&view=rev
> Log:
> Use compressed svndiff1 format for deltas when committing changes over
> http:// and https://.
...
> So, we begin using compressed svndiff1 format in ra_serf, if that's possible.
> This is done for servers that advertise Subversion's HTTP v2 protocol, unless
> compression is disabled by the 'http-compression = no' client configuration
> option.  Existing Apache HTTPd + mod_dav_svn servers know how to deal with
> svndiff1, starting from Subversion 1.4, but the reasoning behind enabling
> it with HTTP v2 is that if the user is stuck with the old protocol version,
> she probably does not really care about the performance.  I tested existing
> custom implementations of Subversion's HTTP v2 protocol that are not based
> on mod_dav_svn, and they as well now how to deal with svndiff1 format.
...
> +++ subversion/trunk/subversion/libsvn_ra_serf/options.c Mon Sep 21 15:19:40 
> 2015
> @@ -243,6 +243,20 @@ capabilities_headers_iterator_callback(v
>            apr_hash_set(session->supported_posts, "create-txn", 10, (void 
> *)1);
>          }
>  
> +      /* Use compressed svndiff1 format for servers that speak HTTPv2.
> +
> +         Apache HTTPd + mod_dav_svn servers support svndiff1, beginning
> +         from Subversion 1.4, but they do not advertise this capability.
> +         Compressing data can have a noticeable impact if the connection
> +         is slow, and we want to use it even for existing servers, so we
> +         send svndiff1 data to every HTTPv2 server (Subversion 1.7 and
> +         greater).
> +
> +         The reasoning behind enabling it with HTTPv2 is that if the user
> +         is stuck with the old Subversion's HTTPv1 protocol, she probably
> +         doesn't really care about performance. */
> +      session->supports_svndiff1 = TRUE;

Perhaps invent an "I speak svndiff1" wire capability and make 1.10
servers advertise it?  I get that the workaround implemented is
necessary for interoperating with released servers, but we could at
least do it right from now on.

Cheers,

Daniel

Reply via email to