Checkout Tools
  • last updated a few minutes ago
Constraints: committers
Constraints: files
Constraints: dates
Implement svn_base64_encode2() with BREAK_LINES flag to control whether

insert newlines periodically or not. The old svn_base64_encode() was

inserting newlines unconditionally.

* subversion/include/svn_base64.h

(svn_base64_encode2): New function declaration.

(svn_base64_encode): Deprecate.

* subversion/libsvn_subr/base64.c

(encode_baton): Add BREAK_LINES field.

(encode_data, finish_encoding_data): Use EB->BREAK_LINES flag.

(svn_base64_encode2): Revv from svn_base64_encode(). Add BREAK_LINES.

argument and save it in ENCODE_BATON.

* subversion/libsvn_subr/deprecated.c

(svn_base64_encode): Call svn_base64_encode2() with BREAK_LINES=TRUE.

* subversion/mod_dav_svn/util.c

(dav_svn__make_base64_output_stream): Use svn_base64_encode2() with


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

(main): Use svn_base64_encode2() with BREAK_LINES=TRUE.

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

(test_stream_base64, test_stream_base64_2): Test svn_base64_encode2() with


  1. … 5 more files in changeset.
When handing out node contents, the delta streams don't need

to calculate MD5 checksums as the result will not be used and the

check would be redundant even if it were made.

Thus, rev the svn_txdelta API to calculate the checksum only

upon specific request and update all callers to use the new API.

* subversion/include/svn_delta.h

(svn_txdelta2): declare new, extended API

(svn_txdelta): deprecate the old one

* subversion/libsvn_delta/text_delta.c

(txdelta_baton): extend docstring

(txdelta_md5_digest): handle the no-checksum-requested case

(svn_txdelta2): implement

(svn_txdelta): re-implement in terms of svn_txdelta2

* subversion/libsvn_fs_fs/fs_fs.c

(svn_fs_fs__get_file_delta_stream): eliminate duplicate MD5 calculation

* subversion/libsvn_ra/compat.c

(svn_ra__file_revs_from_log): switch to reved API, MD5 not used / required

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

(random_test): ditto

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

(main): same here

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

(do_one_diff, main): and here

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

(stream_window_test): switch to reved API, request MD5

  1. … 7 more files in changeset.
Merge all changes (r1068651 - r1072287) from the

integrate-compression-level branch.

These patches make the compression level used for

network data transfer configurable.

  1. … 18 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.
Disable deprecation warnings during compilation of tests.

* subversion/tests/svn_test.h

  (SVN_DEPRECATED): Define as empty definition when


* subversion/tests/libsvn_delta/random-test.c:

* subversion/tests/libsvn_delta/svndiff-test.c:

* subversion/tests/libsvn_delta/vdelta-test.c:

* subversion/tests/libsvn_diff/diff-diff3-test.c:

* subversion/tests/libsvn_fs_base/changes-test.c:

* subversion/tests/libsvn_fs_base/fs-base-test.c:

* subversion/tests/libsvn_fs/fs-test.c:

* subversion/tests/libsvn_fs/locks-test.c:

* subversion/tests/libsvn_repos/repos-test.c:

* subversion/tests/libsvn_subr/hashdump-test.c:

* subversion/tests/libsvn_subr/opt-test.c:

* subversion/tests/libsvn_subr/string-test.c:

* subversion/tests/libsvn_subr/translate-test.c:

* subversion/tests/svn_test_fs.c: Include svn_test.h before other Subversion


Suggested by: hwright

  1. … 14 more files in changeset.
Revert r32829 and r32830 in subversion/tests.

Suggested by: hwright

  1. … 6 more files in changeset.
Use svn_stream_from_aprfile2() instead of deprecated svn_stream_from_aprfile().

* subversion/bindings/javahl/native/SVNClient.cpp:

* subversion/tests/libsvn_diff/diff-diff3-test.c:

* subversion/tests/libsvn_subr/hashdump-test.c:

* subversion/tests/libsvn_delta/svndiff-test.c:

* subversion/tests/libsvn_delta/vdelta-test.c:

* subversion/tests/libsvn_delta/random-test.c: Use svn_stream_from_aprfile2()

instead of deprecated svn_stream_from_aprfile().

  1. … 5 more files in changeset.
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.
Re-order the arguments of svn_txdelta_to_svndiff2(), a new API in 1.4,

so that they meet our conventions of:

- output parameters come first

- pool comes last

This has two advantages:

(1) Users of our APIs are not confused.

(2) The SWIG bindings don't need to use a different argument ordering

to the C API.

Also, rename the 'int version' parameter to 'int svndiff_version', for

consistency with other svn_txdelta functions.

* subversion/include/svn_delta.h

* subversion/bindings/swig/svn_delta.i

* subversion/libsvn_delta/svndiff.c

* subversion/libsvn_fs_base/reps-strings.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_ra_svn/editor.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_repos/dump.c

* subversion/mod_dav_svn/file_revs.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/update.c

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

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

  1. … 12 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.
Add new svndiff1 diff encoding, along with support in all protocols

for the new diff encoding, while also allowing the old

encoding to still function in a way that is backwards compatible

for all older clients.

Add the ability to write this new encoding in the on-disk repository

format , defaulting to on, and add support for creating

repositories that do not use the new encoding, for people who need it.

* Require zlib unconditionally

* notes/svndiff: Add svndiff1 description

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_deltify): Use svn_txdelta_to_svndiff2.

* subversion/libsvn_fs_base/fs.c

(base_create): Default to newer format version.

If SVN_FS_CONFIG_FS_NO_SVNDIFF1 is set in the config opts,

use older format.

(check_format): Support both format 1 and 2.

* subversion/libsvn_fs_base/fs.h



* subversion/libsvn_fs_base/util/fs_skels.c

(is_valid_rep_delta_chunk_skel): Version 1 is valid.

* subversion/svnadmin/main.c

(svnadmin__no_svndiff1): Add option.

(options): Add "no-svndiff1" option.

(cmd_table): Add svnadmin_no__svndiff1 to create command.

(struct svnadmin_opt_state): Add no_svndiff1

(subcommand_create): Set SVN_FS_CONFIG_NO_SVNDIFF1 in the hash if


(main): Set no_svndiff1 if requested.

* subversion/include/svn_error_codes.h: Add


* subversion/include/svn_fs.h: Add SVN_FS_CONFIG_NO_SVNDIFF1.

* subversion/include/svn_ra_svn.h: Add SVN_RA_SVN_CAP_SVNDIFF1.

* subversion/include/svn_delta.h: Add svn_txdelta_to_svndiff2.

* subversion/mod_dav_svn/dav_svn.h

(struct dav_resource_private): Add svndiff_version

* subversion/mod_dav_svn/file_revs.c

(struct file_rev_baton): Add svndiff_version

(file_rev_handler): Use svndiff version set in baton.

(dav_svn__file_revs_report): Get svndiff_version from private info.

* subversion/mod_dav_svn/update.c

(update_ctx_t): Add svndiff_version.

(upd_apply_textdelta): Use svndiff version set in baton.

(dav_svn__update_report): Get svndiff_version from private info.

* subversion/mod_dav_svn/repos.c: Include apr_lib.h

(accept_rec): New struct.

(get_entry): New function.

(do_header_Line): New function.

(sort_encoding_pref): New function.

(svn_dav__negotiate_encoding_prefs): New function.

(dav_svn__get_resource): Negotiate encoding preferences.

(dav_svn_deliver): Use svndiff1 if possible.

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

(main): Add optional version argument.

Use svn_txdelta_to_svndiff2.

* subversion/testes/libsvn_delta/random-test.c

(random_test): Use svn_txdelta_to_svndiff2 and version 1 diffs.

* subversion/libsvn_repos/dump.c

(store_delta): Ditto.

* subversion/libsvn_ra_svn/client.c

(auth_response): Transmit svndiff1 capability.

(open_session): Ditto.

* subversion/libsvn_ra_svn/protocol: Document svndiff1 capability.

* subversion/libsvn_ra_svn/editor.c,


(ra_svn_apply_textdelta): Use svn_txdelta_to_svndiff2, and use svndiff1

if supported.

* subversion/libsvn_delta/svndiff.c: Include zlib.h



(struct encoder_baton): Add version.

(zlib_encode): New function.

(window_handler): Add ability to produce svndiff1.

(svn_txdelta_to_svndiff2): New function.

(svn_txdelta_to_svndiff): Init version to zero.

(struct decode_baton): Add version.

(zlib_decode): New function.

(decode_window): Handle decoding svndiff1.

(write_handler): Ditto.

(read_window_header): Add version argment.

(svn_txdelta_read_svndiff_window): Pass version to decode_window.

(svn_txdelta_skip_svndiff_window): Ditto.

* subversion/libsvn_ra_dav/file_revs.c

(svn_ra_dav__get_file_revs): Set Accept-Encoding header

to specify svndiff1 as acceptable.

* subversion/libsvn_ra_dav/fetch.c

(reporter_finish_report): Set Accept-Encoding header

to specify svndiff1 as acceptable.

* subversion/svnserve/serve.c

(serve): Write out svndiff1 capability.

* subversion/libsvn_fs/fs_fs.c

(check_format): Support both format 1 and 2.

(rep_write_get_baton): Use svn_txdelta_to_svndiff2, and version 1.

(svn_fs_fs__create): Default to newer format version.

If SVN_FS_CONFIG_FS_NO_SVNDIFF1 is set in the config opts,

use older format.

* subversion/libsvn_fs_fs/fs.h



  1. … 27 more files in changeset.
Add new error handlers that don't hardcode the "svn:" prefix. Update

most clients to use the new handlers, the svn client and libsvn_subr

continue to use the old handlers.

* subversion/include/svn_error.h

(svn_handle_error2, svn_handle_warning2): New, adds const char *prefix.

(svn_handle_error, svn_handle_warning): Tweak docsting.

* subversion/libsvn_subr/error.c

(svn_handle_error2, svn_handle_warning2): Renamed from svn_handle_error

and svn_handle_warning, add const char *prefix.

(svn_handle_error, svn_handle_warning): Wrappers to call svn_handle_error

and svn_handle_warning.

* subversion/svnadmin/main.c,
















contrib/client-side/svn-push/svn-push.c: Use the new handlers.

  1. … 18 more files in changeset.
APR_STATUS_IS_SUCCESS is not recommended. Just check for non-zero status.

* subversion/libsvn_subr/io.c (svn_io_open_unique_file,

svn_io_create_unique_link, svn_io_dir_empty),

subversion/tests/libsvn_delta/vdelta-test.c (open_binary_read),

subversion/tests/libsvn_delta/svndiff-test.c (main),

subversion/libsvn_ra_svn/cram.c (svn_ra_svn_cram_server),

subversion/libsvn_ra_svn/marshal.c (svn_ra_svn__input_waiting),

subversion/libsvn_fs_fs/fs_fs.c (move_into_place):

Do not use APR_STATUS_IS_SUCCESS. Check for zero instead.

  1. … 5 more files in changeset.
Fix a crash bug in svndiff-test (which is generally unused).

* tests/libsvn_delta/svndiff-test.c (main): Initialize APR before

making any APR calls.

Don't leak errors; handle or clear them.

* subversion/clients/cmdline/log-cmd.c (log_message_receiver):

* subversion/libsvn_client/add.c (svn_client__get_auto_props):

* subversion/libsvn_client/copy.c (repos_to_wc_copy):

* subversion/libsvn_client/switch.c (svn_client_switch):

* subversion/libsvn_client/update.c (svn_client__update_internal):

* subversion/libsvn_fs/revs-txns.c (svn_fs_txn_proplist, svn_fs_txn_prop,


* subversion/libsvn_fs/tree.c (window_consumer):

* subversion/libsvn_ra_dav/session.c (get_server_settings):

* subversion/libsvn_repos/delta.c (delta_proplists):

* subversion/libsvn_repos/dump.c (svn_repos_dump_fs):

* subversion/libsvn_repos/load.c (new_revision_record, maybe_add_with_history,

new_node_record, close_node, close_revision):

* subversion/libsvn_subr/io.c (svn_io_run_diff3):

* subversion/svnlook/main.c (print_diff_tree):

* subversion/svnserve/serve.c (serve):

Handle errors with SVN_ERR.

* subversion/clients/cmdline/main.c (main):

Handle errors with svn_handle_error.

* subversion/libsvn_client/revert.c (revert):

Handle errors with clean-up.

* subversion/libsvn_ra_dav/fetch.c (get_file_reader):

Clear any error that occurs, as there is no way to report it.

* subversion/libsvn_ra_svn/editorp.c (ra_svn_close_edit):

* subversion/libsvn_subr/subst.c (svn_subst_translate_cstring):

* subversion/libsvn_wc/lock.c (do_open):

* subversion/libsvn_wc/update_editor.c (apply_textdelta):

Clear any error that occurs within error-handling code.

* subversion/libsvn_wc/log.c (svn_wc__run_log):

Return the error - don't just leak it and continue!

* subversion/mod_dav_svn/update.c (dav_svn__update_report):

Handle errors with dav_svn_convert_err.

* subversion/mod_dav_svn/util.c (dav_svn_get_safe_cr):

* subversion/mod_dav_svn/version.c (dav_svn__drev_report):

Clear errors that are intentionally ignored.

* subversion/tests/libsvn_delta/svndiff-test.c (main):

* subversion/tests/libsvn_delta/vdelta-test.c (do_one_diff, main):

* subversion/tests/libsvn_diff/diff-test.c (main):

* subversion/tests/libsvn_diff/diff3-test.c (main):

* subversion/tests/libsvn_diff/diff4-test.c (main):

Handle errors with svn_handle_error or svn_error_clear.

  1. … 29 more files in changeset.
Update copyright notices for 2004, resolving issue #1651.

(See also revision 8019, which fixed a couple of missed spots.)

  1. … 361 more files in changeset.
The great tab cleanup. Replace all tabs with the appropriate amount

of spaces. Running "svn diff --diff-cmd /usr/bin/diff -x -w" shows no


  1. … 56 more files in changeset.
Use svn_stream_for_stdout(), instead of manually constructing an

apr_file_t from stdout and then streamifying it. This simplifies code

by removing extra variables and centralizing error checks.

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

(main): As described above.

* subversion/clients/cmdline/propget-cmd.c

(svn_cl__propget): Same.

* subversion/clients/cmdline/cat-cmd.c

(svn_cl__cat): Same, and move the stream creation outside the

loop over targets.

* subversion/svnadmin/main.c

(create_stdio_stream): Remove obsolete comment.

  1. … 3 more files in changeset.
Remove the svn_stream_from_stdio interface, and change its remaining

callers to use APR file I/O instead. (Subversion shouldn't build

streams on top of C stdio anymore, as that can behave differently on

different platforms.)

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

(do_one_diff): Use apr instead of stdio for streamed binary input.

(open_binary_read): New helper function.

(main): Adjust accordingly.

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

(main): Use apr instead of stdio.

* subversion/include/svn_io.h, subversion/libsvn_subr/stream.c

(read_handler_stdio, read_handler_stdio, write_handler_stdio,

svn_stream_from_stdio): Removed.

  1. … 3 more files in changeset.
* Just about everything else that wasn't test output, a binary file,

or already to set to CRLF: Set svn:eol-style to native.

  1. … 658 more files in changeset.
Touch every file in the repository :) 2003 is here, update all the

copyright statements. Also, update the sample `svn --version' output

to be consistent with the current client.

  1. … 443 more files in changeset.
Just be glad you're not updating over libsvn_ra_pigeons...

* everywhere: Remove "local variables:" eval blocks.

* subversion/libsvn_repos/hooks.c: But leave the vim stuff here.

* tools/dev/svn-dev.el, doc/book/tools/svnbook.el:

Get rid of obsolete loading instructions.

* HACKING: Describe how to load the elisp files from .emacs.

* doc/book/HACKING: Add querulous comment.

  1. … 338 more files in changeset.
* subversion/tests/libsvn_delta/svndiff-test.c

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

Use actual pools instead of passing NULL for apr_pool_t *


Patch by: Daniel Berlin <>

(With a little fix, and a usage message for svndiff-test, by me.)

  1. … 1 more file in changeset.
Fixed a bunch of spurious whitespace in copyright notices.

Revert change to that attempted to compensate for the

slightly different style in the Ruby bindings licenses.

Change all the Ruby binding file licences to be the same as the rest

of Subversion.

  1. … 333 more files in changeset.
Sigh. Hadn't updated the new license in for the

previous commit. Here we go again...

  1. … 334 more files in changeset.
Move svn-dev.el to tools/dev/, then update copyright notice and

svn-dev.el loader for all files.

[Note: see next commit. I'd forgotten to update the license in, so not all copyright notices were updated in

the way they should have been.]

  1. … 339 more files in changeset.
The txdelta stream's subpool wasn't used for anything beyond storing

itself and to "free" itself (i.e. it wasn't a parent of other subpools

or any other complicated pool logic). Instead, simply allocate the

stream in the provided pool and remove the "free" concept.

Per a suggestion from Greg Hudson <ghudson@MIT.EDU>, the BUILD_BATON

arguments in the delta construction functions were changed to an

explict type (rather than void *) for type safety.

* include/svn_delta.h (svn_txdelta_free): removed

* libsvn_wc_adm_crawler.c (do_apply_textdelta): remove call to


* tests/libsvn_delta/vdelta-test.c (main): ditto.

* tests/libsvn_delta/svndiff-test.c (main): ditto.

* tests/libsvn_delta/random-test.c (random_test): ditto.

* libsvn_repos/delta.c (delta_files): ditto.

* libsvn_delta/delta.h (svn_txdelta__insert_op): change BUILD_BATON

argument to a 'struct build_ops_baton_t *' for type safety.

(svn_txdelta__vdelta): ditto.

* libsvn_delta/vdelta.c (vdelta): change BUILD_BATON argument to a

'struct build_ops_baton_t *' for type safety.

(svn_txdelta__vdelta): ditto.

* libsvn_delta/text_delta.c (struct svn_txdelta_stream_t): remove the

'pool' member.

(svn_txdelta__insert_op): change BUILD_BATON argument to a

'struct build_ops_baton_t *' for type safety.

(svn_txdelta): do not construct a subpool for the stream, but place

it directly into the provided pool.

(svn_txdelta_free): removed.

  1. … 8 more files in changeset.
Add some convenience functions for processing txdelta streams.

* include/svn_delta.h (svn_txdelta_send_string): fix/update docco

(svn_txdelta_send_stream): new declaration

(svn_txdelta_send_txstream): new declaration

* libsvn_wc/adm_crawler.c (do_apply_textdelta): use new function.

* libsvn_ra_local/checkout.c (send_file_contents): use new function.

* libsvn_client/commit.c (send_file_contents): use new function.

* mod_dav_svn/repos.c (dav_svn_deliver): use new function.

* tests/libsvn_delta/svndiff-test.c (main): use new function.

* tests/libsvn_delta/random-test.c (random_test): use new function.

* libsvn_repos/delta.c (send_text_delta): use new function.

(delta_files): add comment that we're doing way too much work in

some cases.

* libsvn_delta/text_delta.c (svn_txdelta_send_stream,

svn_txdelta_send_txstream): implement new functions

  1. … 8 more files in changeset.
* tools/ Change to reflect new license.

* everything with a license: Updated with text acknowledging

contributors and advising how to track contribution history.

Suggested by C. Scott Ananian <>.

  1. … 221 more files in changeset.