Evgeny Kotkov wrote:
> Julian Foad <julianfoad_at_apache.org> writes:
>
>>> - On the server-side, SVNCompressionLevel 0 can be used to disable
>>> compression altogether. The special value of SVNCompressionLevel 1 forces
>>> the use of LZ4 compression for clients that support it. All other values
>>> result in negotiating the use of zlib compression with the respective
>>> compression level, unless the compression is disabled on the client.
>>
>> There's a small disagreement with the table there: all other values result
>> in negotiating either zlib or LZ4.
>
> Indeed. Perhaps, we could rephrase it like this?
>
> [...] All other values result in preferring zlib compression with the
> respective compression level. Note that the negotiated algorithm is still
> a subject to the client's configuration. For example, even if the server
> is configured to prefer zlib compression over LZ4, a client may still
> negotiate the use of LZ4 compression when its http-compression option
> is set to auto.
+1.
(Nit: English idiom is "[is still] subject to".)
>>> - On the client-side, setting http-compression to either yes or no will
>>> disable or enable compression that is then negotiated based on the
>>> server's
>>> configuration. The default value of auto will result in preferring LZ4
>>> compression over low latency networks and zlib compression otherwise.
>>
>> Can we link to the reference documentation for the client and server
>> options, so the reader (me) can cross-check the definition and look for
>> related settings?
>
> At the time being, the documentation for these options is quite scarce and
> doesn't dive into the details of which compression algorithm is negotiated
> behind the scenes. The reasoning behind this was to avoid overwhelming
> the users with technical and implementation details and to have a ground
> for future extension by not promising too much. This makes me think that
> linking to these docs from the release notes probably wouldn't be too useful:
>
> https://svn.apache.org/viewvc/subversion/trunk/subversion/mod_dav_svn/mod_dav_svn.c?view=markup&pathrev=1820778#l1392
> https://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_file.c?view=markup&pathrev=1820778#l1151
>
> For the purpose of cross-checking the description, the following locations in
> mod_dav_svn and ra_serf may prove useful:
>
> mod_dav_svn/repos.c:negotiate_encoding_prefs()
> libsvn_ra_serf/util.c:svn_ra_serf__setup_svndiff_accept_encoding()
> libsvn_ra_serf/commit.c:negotiate_put_encoding()
Thanks.
- Julian
Received on 2018-03-02 17:07:22 CET