Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates
Naming policy: Rename all svn_*.c to just *.c in /subversion/libsvn_subr.


* /subversion/libsvn_subr/base64.c

* /subversion/libsvn_subr/cache_config.c

* /subversion/libsvn_subr/mutex.c

* /subversion/libsvn_subr/named_atomic.c

* /subversion/libsvn_subr/string.c

* /subversion/libsvn_subr/temp_serializer.c

* /subversion/libsvn_subr/types.c


* /subversion/libsvn_subr/svn_base64.c

* /subversion/libsvn_subr/svn_cache_config.c

* /subversion/libsvn_subr/svn_mutex.c

* /subversion/libsvn_subr/svn_named_atomic.c

* /subversion/libsvn_subr/svn_string.c

* /subversion/libsvn_subr/svn_temp_serializer.c

* /subversion/libsvn_subr/svn_types.c

  1. … 13 more files in changeset.
Fix a memory allocation problem in the base64 code that caused an

occasional write beyond the end of a buffer during decoding.

* subversion/libsvn_subr/svn_base64.c

(decode_bytes): Allocate enough space.

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

(test_stream_base64_2): New.

(test_funcs): Add new test.

  1. … 1 more file in changeset.
Reintegrate integrate-string-improvements branch into /trunk.
  1. … 83 more files in changeset.
Pre-branch trailing whitespace cleanup.

* subversion/include/svn_client.h,

* subversion/include/svn_types.h,

* subversion/libsvn_delta/svndiff.c,

* subversion/libsvn_fs_fs/caching.c,

* subversion/libsvn_subr/cache-membuffer.c,

* subversion/libsvn_subr/hash.c,

* subversion/libsvn_subr/svn_base64.c,

* subversion/libsvn_wc/adm_crawler.c,

* subversion/libsvn_wc/status.c,

* subversion/libsvn_wc/workqueue.c,

* subversion/mod_dav_svn/reports/update.c,

* subversion/svnadmin/main.c,

* subversion/tests/cmdline/,

* tools/dist/,


Trim trailing whitespace.

  1. … 14 more files in changeset.
* subversion/libsvn_subr/svn_base64.c

(svn_base64_encode_string2, svn_base64_decode_string): Simplify the

conversion from stringbuf to string, eliminating a pool allocation.

Prevent buffer overflows in target stringbuf. The recently added

optimizations rely on sufficient memory being pre-allocated to

the target buffer to hold the entire result string.

Until now, the code would ignore the size of existing content when

pre-allocating the buffer.

* subversion/libsvn_subr/svn_base64.c

(encode_bytes, decode_bytes): ensure that STR is large enough to

hold the new data as well as its current content

* subversion/libsvn_subr/svn_base64.c

(encode_bytes, decode_bytes): Clarify docstrings.

Patch by: danielsh

Silence two signed / unsigned char assignment warnings.

* subversion/libsvn_subr/svn_base64.c

(encode_line, decode_line): explicitly cast rhs to lhs

Found by: danielsh

No functional change.

* subversion/libsvn_subr/svn_base64.c

(encode_bytes): Typo fix and a bikesheddy readability tweak.

Base64 encoding / decoding accounts for a significant part of the protocol

handling with NEON. Make that 3 .. 4 times faster.

* subversion/libsvn_subr/svn_base64.c

(BASE64_LINELEN, base64tab): add docstrings

(BYTES_PER_LINE): new, derived value

(encode_group): fine-tune

(decode_group_directly): new function variant

(encode_line, decode_line): new functions to process line-sized chunks at once

(encode_bytes, decode_bytes): use above functions when possible

Remove some integer size mismatch warnings by using size_t in places where

we calculate pointer differences.

* subversion/libsvn_subr/svn_base64.c

(encode_baton, encode_bytes, encode_partial_group, svn_base64_encode_string2,

base64_from_checksum): Use size_t in place of int.

* subversion/libsvn_subr/svn_base64.c

(encode_bytes): Resize the stringbuf to make room for the (approximate)

size of output, to avoid repeated resizes later.

* subversion/libsvn_subr/svn_base64.c

(encode_bytes, encode_partial_group): Use svn_stringbuf_appendbyte() to

add one character to stringbuf.

Improve pool usage in svn_base64_decode/svn_base64_decode streams.

* subversion/libsvn_subr/svn_base64.c

(encode_baton, decode_baton): Rename pool to scratch_pool.

(encode_data, decode_data): Allocate temporary buffer from scratch_pool

and clear it.

(finish_encoding_data): Allocate temporary buffer from scratch_pool and

destroy it.

(finish_decoding_data): Destroy scratch_pool.

(svn_base64_encode, svn_base64_decode): Allocate baton from pool, not

from subpool.

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.
Simplify slightly by using svn_checksum__from_digest().

* subversion/libsvn_subr/checksum.c

(svn_checksum_empty_checksum): Simplify, thus avoiding casting away "const".

* subversion/libsvn_subr/svn_base64.c

(svn_base64_from_md5): Simplify.

* subversion/tests/libsvn_delta/window-test.c

(stream_window_test): Simplify.

  1. … 2 more files in changeset.
Revert r35164.

* subversion/libsvn_subr/svn_base64.c

(base64_from_checksum): Revert r35164 based on the comment by gstein

[This was reverted in r35165.]

Follow up r35156.

* subversion/libsvn_subr/svn_base64.c

(base64_from_checksum): Suppress warning of "argument 1 of 'svn_checksum_size'

discards qualifiers from pointer target type".

Follow-up to r35102:

* subversion/libsvn_subr/svn_base64.c

(svn_base64_from_checksum): Rename to ...

(base64_from_checksum): ... this.

(svn_base64_from_md5): Update.

Revert r35103 because making the svn_checksum_t type opaque was unnecessary

obstruction, as suggested by gstein in the email thread


The log message of r35103 was:

In the "checksums" API, make the svn_checksum_t type opaque to help make

future extensions easier, and introduce accessor functions [...]

Make the constructor "svn_checksum__from_digest()" public [...]

  1. … 23 more files in changeset.
In the "checksums" API, make the svn_checksum_t type opaque to help make

future extensions easier, and introduce accessor functions:


svn_checksum_get_size() (replacing svn_checksum_size())


to replace direct access.

Make the constructor "svn_checksum__from_digest()" public as well by

renaming it to "svn_checksum_from_digest()", because it is the logical

complement of the "get" accessors.

* subversion/include/svn_checksum.h,


(svn_checksum_t): Move the definition from the header to the source file,

leaving just a declaration in the header. Make the "digest" field

non-const and remove all the type casts that were used to write to it

throughout the rest of this source file.

(svn_checksum_size): Rename to ...

(svn_checksum_get_size): ... this and add "const" on the input parameter.

(svn _checksum_get_kind, svn_checksum_get_digest): New functions.

(svn_checksum__from_digest): Rename to ...

(svn_checksum_from_digest): ... this.

* subversion/libsvn_client/commit.c,




















Adjust for the renaming of svn_checksum__from_digest().

Use the accessor functions instead of direct access.

* subversion/libsvn_subr/svn_base64.c


Use the accessor functions instead of direct access.

(svn_base64_from_md5): Use svn_checksum__from_digest to simplify and avoid

direct write access to a checksum.

* subversion/tests/libsvn_delta/window-test.c

(stream_window_test): Use svn_checksum_from_digest() to simplify and avoid

direct write access to a checksum.

  1. … 23 more files in changeset.
Remove a (new, unused) function from public view.

* subversion/include/svn_base64.h

(svn_base64_from_checksum): Remove from here. This function was new in 1.6

but unused. It was a high-level function that knew about base64 and

about svn_checksum_t. It had peculiarities: using svn_stringbuf_t when

the other base64 functions use svn_string_t (or svn_stream_t); having no

svn_checksum_from_base64() counterpart.

* subversion/libsvn_subr/svn_base64.c

(svn_base64_from_checksum): Make it "static". This is now only used as the

new implementation of svn_base64_from_md5(), and it would probably be

safer to revert that to its old implementation.

  1. … 1 more file in changeset.
Tweak a local function signature to avoid the need for a type cast. (This

particular type cast was casting away "const" though it need not have done.)

* subversion/libsvn_subr/svn_base64.c

(encode_bytes): Take "void *" instead of "char *" input data.

(svn_base64_from_checksum): Remove a type cast in calling encode_bytes().

More checksum API updating.

* subversion/libsvn_subr/svn_base64.c,


(svn_base64_from_checksum): New.

(svn_base64_from_md5): Deprecate.

* subversion/libsvn_subr/checksum.c,


(svn_checksum_size): New.

  1. … 3 more files in changeset.
Housekeeping: In the spirit of r27598, remove trailing whitespace in

our repository.

for extsn in c h cpp java py pl rb; do

find . -name "*.$extsn" | xargs perl -pi.bak -e 'next if /^\f$/; s/\s+$/\n/'


(This touches files in various and sundry parts of the tree, which I shan't

enumerate here.)

  1. … 175 more files in changeset.
Merge the in-memory-cache branch to trunk.

See that branch's log for full details, but in short:

The branch rewrote various in-memory caches in FSFS to use a unified

API. By default this API is implemented by some in-process hashes,

but via a configuration file (db/fsfs.conf), it can use memcached

instead. Additionally, expanded fulltexts are cached if memcached is


memcached is accessed with the apr_memcached API, which will be in a

future version (1.3.x branch, now) of apr-util, and is also available as an

separately-distributed library. The build system knows how to deal

with both.

Other things that changed:

* The test suite now has a config file; currently, the config file is

just used as the FSFS config file for any created repositories.

* New random APIs: svn_base64_encode_string2, svn_stream_from_string.

* ra_local ignores "FS warnings" instead of aborting.

  1. … 48 more files in changeset.
* subversion/libsvn_subr/svn_base64.c

(reverse_base64): Define array.

(decode_bytes): Optimise firstly by avoiding unnecessary stringbuf

resizes, and secondly by using a lookup table to decode each

character, rather than a linear search with strchr.

Channeling Erik Hülsmann, remove all trailing whitespace within our source


for extsn in c h cpp java py pl rb; do

sed -i -e 's/[ \t]*$//' `find . -name "*.$extsn" | xargs grep '[ \t]$' -l`


Inspired by: ehu

  1. … 449 more files in changeset.
Reformat the code to use a consistent no-space-before-param-list-paren style.

See here for the vote that decided this:

From: "Peter N. Lundblad" <>

To: "Peter N. Lundblad" <>


Subject: Results of: [VOTE] New space-before-parens style

Date: Wed, 8 Feb 2006 12:00:35 +0100 (CET)

Message-ID: <Pine.LNX.4.55.0602080918350.10805@localhost.localdomain>

I took the opportunity to make spacing among all parens in SVN_ERR

macro calls consistent. But I did not address consistency of casts,

nor whether a function name should always appear below its return type

in declarations and definitions, nor whether there should be a space

before/after the "*" when declaring pointer return types.

* www/hacking.html

(coding-style): Document that we are no-space-before-paren now.

* everywhere: Reformat.

  1. … 365 more files in changeset.