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.
>> - 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,
Evgeny Kotkov
Received on 2018-03-01 23:11:07 CET