Checkout Tools
  • last updated 2 hours ago
Constraints: committers
Constraints: files
Constraints: dates
Happy (not-now-so-)new year, 2020!


* subversion/libsvn_subr/version.c (svn_version_extended):

Bump copyright year to 2020.

  1. … 1 more file in changeset.
Happy new year, 2019.


* subversion/libsvn_subr/version.c (svn_version_extended):

Bump copyright year to 2019.

  1. … 1 more file in changeset.
Add optional dependency on the Boost C++ libraries for the SVN++ test suite.

* build/ac-macros/ax_boost_base.m4: New; imported from The Autoconf Archive.

* LICENSE, NOTICE: Document the license for ax_boost_base.m4.

* aclocal.m4: Inlcude build/ac-macros/ax_boost_base.m4

* build.conf

(options.private-includes): Add headers from subversion/bindings/cxx/tests.

(svnxx-tests): Declare test target for SVN++.

* Check for Boost availability.



(COMPILE_SVNXX_CXX_BOOST, LINK_CXX_BOOST): New compile and link commands.

  1. … 6 more files in changeset.
Happy new year.


* subversion/libsvn_subr/version.c (svn_version_extended):

Bump copyright year to 2018.

  1. … 1 more file in changeset.
fsfs: Add initial support for LZ4 compression.

This can significantly (up to 3 times) improve the speed of commits and

other operations with large binary or incompressible files, while still

maintaining a decent compression ratio.

Our current use of zlib compression — which, depending on the protocol,

can be used multiple times — heavily affects the speed of commits with

large binary or incompressible files. According to the Squash benchmark

( and to my measurements, the

zlib compression speed with the default level is about 30-40 MiB/s, and

it doesn't matter if the file is incompressible or not.

This patch provides an alternative in the form of the LZ4 compression.

While still providing a decent compression ratio, LZ4 offers much faster

compression even than zlib with level=1, and can skip incompressible data

chunks. Presumably, LZ4 is used for on-the-fly compression in different

file systems for these reasons.

With this patch, LZ4 compression will be enabled for fsfs repositories which

specify compression-level=1 in fsfs.conf. The interoperability is implemented

by bumping the format of svndiff to 2 and the repository file system format

to 8. From the client perspective, the patch starts using LZ4 compression

only for file:// protocol, and the support/negotiation of the use of svndiff2

with LZ4 compression for http:// and svn:// can be added later.

The tests for LZ4 compression can be run with one of the following commands: --fsfs-compression=1


* subversion/include/svn_delta.h

(svn_txdelta_to_svndiff3): Update docstring.

* subversion/include/svn_error_codes.h



* subversion/include/private/svn_subr_private.h

(svn__compress, svn__decompress): Rename to ...

(svn__compress_zlib, svn__decompress_zlib): ..this.

(svn__compress_lz4, svn__decompress_lz4): Declare new functions.

* subversion/libsvn_subr/compress.c

(): Include LZ4 library header.

(svn__compress, svn__decompress): Rename to ...

(svn__compress_zlib, svn__decompress_zlib): ..this.

(svn__compress_lz4, svn__decompress_lz4): Implement new functions.

* subversion/libsvn_subr/packed_data.c

(write_stream_data, read_stream_data): Update usages of svn__compress()

and svn__decompress().

* subversion/libsvn_delta/svndiff.c

(SVNDIFF_V2): New.

(get_svndiff_header): Update to support svndiff2 headers.

(encode_window, decode_window, write_handler): Support svndiff2 with

LZ4 compression. Tweak the relevant comments.

* subversion/libsvn_fs_fs/fs.h



* subversion/libsvn_fs_fs/fs_fs.c

(write_config): Tweak the compression-level option description.

(svn_fs_fs__create, svn_fs_fs__info_format): Update to handle the

format bump.

* subversion/libsvn_fs_fs/transaction.c

(txdelta_to_svndiff): New helper to call svn_txdelta_to_svndiff3() with

appropriate svndiff version and compression level, depending on the

file system configuration.

(rep_write_get_baton, write_container_delta_rep): Use new helper.

* subversion/libsvn_fs_fs/revprops.c

(parse_packed_revprops, repack_revprops, svn_fs_fs__copy_revprops):

Update usages of svn__compress() and svn__decompress().

* subversion/libsvn_fs_fs/structure

(Filesystem formats): Update to describe usage of svndiff2.

* subversion/tests/libsvn_subr/compress-test.c: New.

* subversion/tests/libsvn_delta/random_test.c

(DEFAULT_ITERATIONS): Increase to 60.

(do_random_test, do_random_combine_test): Test different svndiff versions

and compresssion levels.

* build.conf

(libsvn_subr): Build LZ4 library sources.

(compress-test): Add new section.

* notes/svndiff: Describe svndiff2.

* NOTICE, LICENSE: Include license for LZ4.

  1. … 16 more files in changeset.
* NOTICE: Happy New Year 2017

* NOTICE: Bump copyright year to 2016.

* subversion/libsvn_subr/version.c

(svn_version_extended): Bump copyright year to 2016.

  1. … 1 more file in changeset.
* NOTICE: Bump copyright year.
Merge the svn-auth-x509 branch to trunk.

This adds an X.509 parser which we use to display certificates via the auth

command rather than storing the details provided by serf from a connection.


NOTICE: Note that the X.509 parser is based on the parser from TropicSSL.

* build.conf

(libsvn_subr): Add svn_x509.h header to msvc-export.

(x509-test, __ALL_TESTS__): Add C tests for X.509 parser.

* subversion/include/private/svn_utf_private.h

(svn_utf__encode_ucs4_string, svn_utf__utf16_to_utf8,

svn_utf__utf32_to_utf8): New functions for converting various Unicode

character encodings needed by the X.509 parser.

* subversion/include/svn_x509.h: New header.

* subversion/include/svn_error_codes.h

(SVN_ERR_X509_CATEGORY_START): New category for errors from X.509 parser.











New error codes.

* subversion/include/svn_config.h



SVN_CONFIG_AUTHN_ISSUER_DN_KEY): Remove constants used as keys for

storing parsed certificate info in authn files.

* subversion/libsvn_subr/x509parse.c,


subversion/include/x509.h: New files for implementing the X.509 parser.

* subversion/libsvn_subr/ssl_server_trust_providers.c


ssl_server_trust_file_save_credentials): Don't store/retrive parsed

details of X.509 certificates.

* subversion/libsvn_subr/utf.c

(membuf_insert_ucs4, svn_utf__utf16_to_utf8, svn_utf__utf32_to_utf8):

New functions to implement Unicode conversions.

* subversion/libsvn_subr/utf8proc.c

(encode_ucs4_string): Convert to the private function ...

(svn_utf__encode_ucs4_string): New function.

(svn_utf__glob): Update caller.

* subversion/svn/auth-cmd.c

(match_credential): Remove code to match the hostname/fingerprint since

the data isn't stored.

(show_cert): New function to drive the X.509 parser and then display

the certificate to the user.

(list_credential): Use show_cert().

* subversion/tests/libsvn_subr/utf-test.c

(test_utf_conversions, test_funcs): Add tests for new unicode character

set conversions.

* subversion/tests/libsvn_subr/x509-test.c: Add tests for X.509 parser.

[in subverison/bindings/javahl]

* native/jniwrapper/jni_base.cpp,


Add IllegalArgumentException exeption.

* native/AuthnCallback.cpp,



(AuthnCallback::SSLServerCertInfo): Update the getters and constructor to

reflect the info available from the X.509 parser.

* native/org_apache_subversion_javahl_util_ConfigLib.cpp

(build_credential): Update to feed AuthnCallback::SSLServerCertInfo the info

that is available.


Update the searching of the certificates to parse the certificate rather

than depending on the stored data.

* src/org/apache/subversion/javahl/

(SVNUtil.searchCredentials): Update hostnamePattern documentation.

* native/Promper.cpp

(Prompter::dispatch_ssl_server_trust_prompt): Update to reflect changes

to SSLServerCertInfo.

* src/org/apache/subversion/javahl/util/ Remove some commented

out code.

* tests/org/apache/subversion/javahl/

(util_cred_ssl_server, testCredentials): Update tests as needed.

  1. … 29 more files in changeset.
* NOTICE, LICENSE: Add license info for utf8proc.

  1. … 1 more file in changeset.
Happy New Year!

* NOTICE: Bump copyright year to 2014.

* subversion/libsvn_subr/version.c

(svn_version_extended): Bump copyright year to 2014.

  1. … 1 more file in changeset.
Update NOTICE to give the full project name.

Obvious fix.

* NOTICE: s/Subversion/Apache Subversion/

* NOTICE: update copyright year to 2013

Approved by: danielsh

Merge forth batch of changes from the 10Gb branch.

Faster membuffer cache lookup and concurrency improvement.

Revisions 1388816,1389044,1389289,1390216

  1. … 9 more files in changeset.
Add support for determining the display width of a unicode string, and make

use of this when trimming lines for display by the internal file merge tool.

Based on suitably licensed code by Markus Kuhn:

* LICENSE, NOTICE: Add Markus Kuhn copyright notices.

* subversion/include/svn_utf.h

(svn_utf_cstring_utf8_width): Declare.

* subversion/libsvn_subr/utf_width.c: New file, implementation of the above

newly declared function. This file is based on Markus Kuhn's code, and has

been adapted to use APR types. The svn_utf_cstring_utf8_width() function

was written from scratch and replaces Markus' mk_wcswidth() function.

* subversion/svn/file-merge.c

(MAX_LINE_DISPLAY_LEN): Rename to ...

(LINE_DISPLAY_WIDTH): ... this, because it is not a maximum but a fixed

length since all lines are either trimmed or padded to this length.

(prepare_line_for_display): Use the new character display width support

to properly detect the width of unicode characters (tested with a bunch

of asian texts from wikipedia). Track rename of MAX_LINE_DISPLAY_LEN.

  1. … 4 more files in changeset.
Mention the X-Consortium license and containing file in NOTICE

Suggested by and Approved by : danielsh

It's New Year all over again.

* NOTICE: Bump copyright year.

Approved by: stsp

Clean up the Python bindings testsuite's licensing, remove references that

are no longer valid.

* NOTICE: Reference the top-level LICENSE file instead of the now-removed

one and list all copyright holders for the BSD-licensed code.

* LICENSE: Remove comment marks and list all copyright holders for the

BSD-licensed code.

* subversion/bindings/swig/python/tests/trac/versioncontrol/tests/,



subversion/bindings/swig/python/tests/trac/ Replace references

to LICENSE_FOR_PYTHON_BINDINGS with the full license text; add the ASF

blurb where it's missing.

Approved by: cmpilato

  1. … 5 more files in changeset.
Reduce the scope of the special licensing of the Python bindings to

just the test suite for those bindings. Nothing in the bindings

themselves requires any of Edgewall's software.


Update the reference to the Python bindings test suite license.


Note the custom license carried by the Python bindings test suite.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS

Move this...

* subversion/bindings/swig/python/tests/LICENSE here, tweak the formatting a little bit, and note that it

isn't the whole of the Python bindings that are so licensed -- just

the test suite portion.

  1. … 3 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.


Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.



subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.