Checkout Tools
  • last updated 3 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* subversion/libsvn_fs_base/reps-strings.c

(txn_body_read_rep): Put correct checksum in error message.

Finish ending the use of the deprecated svn_stream_set_read().

* subversion/bindings/ctypes-python/csvn/types.py

(Stream.__init__): Use svn_stream_set_read2().

* subversion/bindings/javahl/native/InputStream.cpp

(InputStream::getStream): Use svn_stream_set_read2().

* subversion/bindings/javahl/native/jniwrapper/jni_io_stream.cpp

(InputStream::get_global_stream, InputStream:get_stream):

Use svn_stream_set_read2().

* subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c

(svn_swig_pl_make_stream): Use svn_stream_set_read2().

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

(svn_swig_py_make_stream): Use svn_stream_set_read2().

* subversion/bindings/swig/ruby/libsvn_swig_ruby/swigutil_rb.c

(svn_swig_rb_make_stream): Use svn_stream_set_read2().

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_contents_read_stream): Use svn_stream_set_read2().

* subversion/libsvn_fs_fs/cached_data.c

(svn_fs_fs__get_contents): Use svn_stream_set_read2().

* subversion/libsvn_fs_fs/recovery.c

(recover_find_max_ids): Use svn_stream_set_read2().

* subversion/libsvn_fs_x/cached_data.c

(svn_fs_x__get_contents): Use svn_stream_set_read2().

* subversion/libsvn_subr/spillbuf.c

(svn_stream__from_spillbuf): Use svn_stream_set_read2().

* subversion/libsvn_subr/stream.c

(svn_stream_compressed): Use svn_stream_set_read2().

* subversion/libsvn_subr/subst.c

(stream_translated, svn_subst_stream_from_specialfile):

Use svn_stream_set_read2().

* subversion/libsvn_wc/adm_crawler.c

(copying_stream): Use svn_stream_set_read2().

* subversion/libsvn_wc/translate.c

(svn_wc__internal_translated_stream): Use svn_stream_set_read2().

  1. … 14 more files in changeset.
Fix deprecation warnings in BDB FS code.

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_deltify): use the new svn_txdelta_to_svndiff3 and

svn_txdelta2 instead of their predecessors

* subversion/libsvn_fs_base/tree.c

(base_get_file_delta_stream): use the new svn_txdelta2

  1. … 1 more file in changeset.
Decrease a constant from an order-of-magnitude too large a value to

an unlikely (but feasible) value.

* subversion/libsvn_fs-base/reps-strings.c

(rep_read_range): Allocate 30 array elements for the deltas chain.

Plug a memory leak in the fs-base deltification logic. Twice in a

decade I've seen this code swallow all the memory on a server in the

wild when trying to deltify some fairly large versioned files. Now,

such a deltification maintains a constant (and relatively low -- 17 MB

in my verification against the second of these troublesome data sets)

level of memory usage.

NOTE: This patch appears to pass all the BDB tests on my laptop, but

of course those aren't known to cover large datasets. I would

really, really appreciate some extra eyes on this change!

Wondering aloud... if this approach turns out to be correct, should

the corresponding stream write function in this same file

(rep_write_contents) use a similarly initialized scratch pool and

clear it at the start of each invocation, too?

* subversion/libsvn_fs_base/reps-strings.c

(struct rep_read_baton): Rename (and repurpose) 'pool' to

'scratch_pool'.

(rep_read_get_baton): Now initialize scratch_pool (formerly, pool)

from a subpool of the passed-in pool. This allows us to clear it

without destroying the baton.

(txn_body_read_rep): Use the baton's scratch_pool instead of

trail->pool in the call to rep_read_range().

(rep_read_contents): Clear the baton's scratch_pool before use.

Rename the 'svn_error_return' macro to 'svn_error_trace'.

See email thread "[RFC] Rename 'svn_error_return' to 'svn_error_trace'?" on

2011-06-23, <http://svn.haxx.se/dev/archive-2011-06/0708.shtml>.

* subversion/include/svn_error.h

(svn_error_return): Rename to svn_error_trace.

(SVN_ERR, svn_error_purge_tracing): Track the rename.

* [everywhere]: Track the rename.

  1. … 120 more files in changeset.
Remove 'svn obliterate' related code.

* subversion/libsvn_ra/ra_loader.h,

subversion/libsvn_ra/ra_loader.c

(svn_ra__vtable_t, svn_ra__obliterate_path_rev):

Remove obliterate related code.

* subversion/libsvn_fs/fs-loader.h,

subversion/libsvn_fs/fs-loader.c

(fs_vtable_t, svn_fs__begin_obliteration_txn,

svn_fs__commit_obliteration_txn): Remove obliterate related code.

* subversion/svn/cl.h,

subversion/svn/main.c

(svn_opt_subcommand_t, svn_cl__cmd_table): Remove obliterate related code.

* subversion/libsvn_ra_local/ra_plugin.c,

subversion/libsvn_ra_svn/client.c,

subversion/libsvn_ra_neon/session.c,

subversion/libsvn_ra_serf/serf.c

(svn_ra_local__obliterate_path_rev, ra_local_vtable, ra_svn_vtable,

neon_vtable, serf_vtable): Remove obliterate related code.

* subversion/libsvn_fs_base/tree.h,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/reps-strings.h,

subversion/libsvn_fs_base/reps-strings.c,

subversion/libsvn_fs_base/dag.h,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/revs-txns.h,

subversion/libsvn_fs_base/fs.c

(svn_fs_base__commit_obliteration_txn, svn_fs_base__obliterate_rep,

txn_body_commit_obliteration, txn_body_obliterate_rep,

svn_fs_base__rep_obliterate, svn_fs_base__dag_commit_obliteration_txn,

svn_fs_base__dag_obliterate_rep, svn_fs_base__begin_obliteration_txn,

txn_vtable, txn_body_begin_obliteration_txn, fs_vtable,

node_origins_update, copies_update, changes_dup):

Remove obliterate related code.

* subversion/include/private/svn_client_private.h,

subversion/include/private/svn_repos_private.h,

subversion/include/private/svn_ra_private.h,

subversion/include/private/svn_fs_private.h

(svn_client__obliterate_path_rev, svn_repos__obliterate_path_rev,

svn_repos__pre_obliterate_hook, svn_repos__post_obliterate_hook,

svn_ra__obliterate_path_rev, svn_fs__begin_obliteration_txn,

svn_fs__commit_obliteration_txn): Remove obliterate related code.

* subversion/libsvn_repos/repos.h,

subversion/libsvn_repos/repos.c,

subversion/libsvn_repos/hooks.c

(svn_repos__hooks_pre_obliterate, svn_repos__hooks_post_obliterate,

create_hooks, check_hook_result): Remove obliterate related code.

* subversion/libsvn_fs_fs/tree.h,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_fs_fs/fs_fs.h,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs_fs/fs.c

(svn_fs_fs__commit_obliteration_txn, svn_fs_fs__commit_obliteration,

svn_fs_fs__begin_obliteration_txn, txn_vtable,

svn_fs_fs__create_obliteration_txn, commit_obliteration_body,

svn_fs_fs__commit_obliteration, svn_fs_fs__begin_obliteration_txn,

fs_vtable): Remove obliterate related code.

* subversion/svn/obliterate-cmd.c,

subversion/libsvn_client/obliterate.c,

subversion/libsvn_repos/obliterate.c,

subversion/libsvn_fs_base/obliterate.h,

subversion/libsvn_fs_base/obliterate.c,

subversion/tests/cmdline/obliterate_tests.py

Remove obliterate related files.

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

subversion/tests/cmdline/svntest/objects.py

(obliterate_1, test_funcs, SvnRepository.obliterate_node_rev):

Remove obliterate related test.

Patch by: Noorul Islam K M <noorul{_AT_}collab.net>

  1. … 38 more files in changeset.
Make more extensive use of svn_checksum_mismatch_err(). In addition to

improving code reuse, this has the benefit of reducing the amount of translator

effort and eliminating a number of "format is not a string literal" warnings.

* subversion/libsvn_fs_base/tree.c

(txn_body_apply_textdelta),

subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_contents, txn_body_read_rep),

subversion/libsvn_fs_base/dag.c

(svn_fs_base__dag_finalize_edits),

subversion/libsvn_wc/update_editor.c

(close_file),

subversion/libsvn_wc/questions.c

(compare_and_verify),

subversion/libsvn_wc/adm_crawler.c

(svn_wc__internal_transmit_text_deltas),

subversion/libsvn_repos/load-fs-vtable.c

(maybe_add_with_history),

subversion/libsvn_repos/commit.c

(close_file),

subversion/libsvn_fs_fs/tree.c

(apply_textdelta),

subversion/libsvn_fs_fs/fs_fs.c

(rep_read_contents),

subversion/libsvn_fs_fs/dag.c

(svn_fs_fs__dag_finalize_edits):

Use svn_checksum_mismatch_err() where appropriate.

* subversion/tests/cmdline/basic_tests.py

(basic_corruption): Update expected error code.

  1. … 11 more files in changeset.
Fix error leaks.

* everywhere:

Add missing SVN_ERR() calls.

* subversion/libsvn_repos/load-fs-vtable.c

(make_node_baton): Return an svn_error_t *.

(new_node_record): Track return type change.

* subversion/svnadmin/main.c (main),

subversion/svndumpfilter/main.c (main),

subversion/svnlook/main.c (main),

subversion/svnrdump/svnrdump.c (main),

subversion/svnsync/main.c (main):

Use SVN_INT_ERR() around subcommand_help() or help_cmd().

  1. … 34 more files in changeset.
Add "const" to all "apr_array_header_t *" input parameters in public and

private APIs.

(Note that we are allowed to add "const" to a pointer parameter of a public

API, and have done so before, because that is a backward-compatible API

change and doesn't change the ABI at all.)

The public functions whose prototypes are changed are listed individually

below; the private functions are not.

* subversion/include/svn_auth.h

(svn_auth_open)

* subversion/include/svn_client.h

(svn_client_get_commit_log_t,

svn_client_copy5,

svn_client_copy4,

svn_client_move5,

svn_client_patch)

* subversion/include/svn_delta.h

(svn_delta_path_driver,

svn_file_rev_handler_t,

svn_file_rev_handler_old_t)

* subversion/include/svn_fs.h

(svn_fs_change_txn_props)

* subversion/include/svn_mergeinfo.h

(svn_rangelist_diff,

svn_rangelist_merge,

svn_rangelist_remove,

svn_rangelist_intersect,

svn_rangelist_inheritable2,

svn_rangelist_inheritable,

svn_rangelist_dup)

* subversion/include/svn_opt.h

(svn_opt_args_to_target_array3,

svn_opt_args_to_target_array2,

svn_opt_args_to_target_array,

svn_opt_eat_peg_revisions)

* subversion/include/svn_ra.h

(svn_ra_file_rev_handler_t,

svn_ra_get_locations,

svn_ra_plugin_t.get_locations)

* subversion/include/svn_ra_svn.h

(svn_ra_svn_command_handler,

svn_ra_svn_set_capabilities,

svn_ra_svn_parse_tuple,

svn_ra_svn_parse_proplist)

* subversion/include/svn_repos.h

(svn_repos_file_rev_handler_t,

svn_repos_trace_node_locations,

svn_repos_fs_get_mergeinfo,

svn_repos_fs_change_txn_props,

svn_repos_remember_client_capabilities)

* subversion/include/svn_sorts.h

(svn_sort__bsearch_lower_bound)

* subversion/include/svn_string.h

(svn_cstring_match_glob_list)

* subversion/include/svn_wc.h

(svn_wc_get_status_editor3,

svn_wc_get_update_editor4,

svn_wc_get_update_editor3,

svn_wc_get_switch_editor4,

svn_wc_get_switch_editor3,

svn_wc_match_ignore_list)

* subversion/include/private/svn_cmdline_private.h

* subversion/include/private/svn_opt_private.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/client.h

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/deprecated.c

* subversion/libsvn_client/merge.c

* subversion/libsvn_client/mergeinfo.c

* subversion/libsvn_client/mergeinfo.h

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/path_driver.c

* subversion/libsvn_fs_base/reps-strings.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/revs-txns.h

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/fs_fs.h

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs/fs-loader.h

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra/ra_loader.h

* subversion/libsvn_ra/wrapper_template.h

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_neon/get_locations.c

* subversion/libsvn_ra_neon/props.c

* subversion/libsvn_ra_neon/ra_neon.h

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/cyrus_auth.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/internal_auth.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_ra_svn/ra_svn.h

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_repos/repos.c

* subversion/libsvn_repos/repos.h

* subversion/libsvn_repos/rev_hunt.c

* subversion/libsvn_subr/auth.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/svn_string.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/deprecated.c

* subversion/libsvn_wc/diff.c

* subversion/libsvn_wc/status.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/util.c

* subversion/mod_dav_svn/dav_svn.h

* subversion/mod_dav_svn/reports/file-revs.c

* subversion/mod_dav_svn/util.c

* subversion/svn/cl.h

* subversion/svn/props.c

* subversion/svn/switch-cmd.c

* subversion/svn/util.c

* subversion/svndumpfilter/main.c

* subversion/svnserve/serve.c

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

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

  1. … 78 more files in changeset.
From Philip Martin's "obliterate-like-deltify" branch, bring in a new kind

of obliterate function which obliterates the changes made by a particular

rep. This is here to experiment with; there are no calls to it yet.

* subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/dag.h

(svn_fs_base__dag_obliterate_rep): New function, renamed from the

function svn_fs_base__dag_obliterate() on the branch.

* subversion/libsvn_fs_base/reps-strings.c,

subversion/libsvn_fs_base/reps-strings.h

(svn_fs_base__rep_obliterate): New function.

* subversion/libsvn_fs_base/tree.c

(txn_obliterate_rep_args): New struct.

(txn_body_obliterate_rep, svn_fs_base__obliterate_rep): New functions.

  1. … 4 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.

* NOTICE:

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.

* LICENSE: New.

* COPYING,

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.
More error return wrapping.

* subversion/libsvn_fs_base/bdb/bdb-err.c,

subversion/libsvn_fs_base/bdb/changes-table.c,

subversion/libsvn_fs_base/bdb/env.c,

subversion/libsvn_fs_base/bdb/lock-tokens-table.c,

subversion/libsvn_fs_base/bdb/locks-table.c,

subversion/libsvn_fs_base/bdb/txn-table.c,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/fs.c,

subversion/libsvn_fs_base/lock.c,

subversion/libsvn_fs_base/reps-strings.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs_fs/tree.c:

Add some calls to svn_error_return().

  1. … 13 more files in changeset.
Follow-up to r37372:

Improve some messages.

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/tree.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_repos/load.c: Improve some messages.

  1. … 3 more files in changeset.
Improve some messages.

* subversion/libsvn_client/export.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_fs/dag.c:

* subversion/libsvn_fs_fs/fs_fs.c:

* subversion/libsvn_ra_neon/fetch.c:

* subversion/libsvn_ra_serf/auth_kerb.c:

* subversion/libsvn_ra_svn/client.c:

* subversion/libsvn_repos/commit.c:

* subversion/libsvn_wc/adm_crawler.c:

* subversion/libsvn_wc/entries.c:

* subversion/libsvn_wc/questions.c:

* subversion/libsvn_wc/update_editor.c: Improve some messages.

  1. … 12 more files in changeset.
Attempt to button down the BDB backend's memory usage by allowing trail

producers to tell that subsystem to discard all memory associated with

the trail.

Most of the time, this pool usage waste isn't a problem (because of

better pool practices in higher layers). But mod_dav and mod_dav_svn

have notoriously wicked pool usage behavior, and I'm tired of having

the theoretically niceties of our pool usage guidelines getting in the

way of Subversion working. Why should a simple 'svn ls -v' of a

directory with 10,000 files exhaust all the memory on my 2Gb laptop?

It shouldn't, ahd if this kind of change is what I have to do to get

that leakage back down to "only" 339Mb, I feel compelled to do it.

An arguably cleaner approach would have been to add a 'result_pool'

argument to the txn_body_* function type which is the same pool passed

to svn_fs_base__retry_txn(). That would allow the txn_body_*

functions (which already operate with 'trail' and 'trail->pool' today)

to use the 'result_pool' argument as a final destination for

returnable stuff and 'trail->pool' for scratch work. (And then

do_retry() function would, of course, always whack trail->pool when it

was finished with a trail.) I've filed issue #3395 to track this

possible future enhancement.

Reviewed by: gstein

* subversion/libsvn_fs_base/trail.h

(svn_fs_base__retry_debug, svn_fs_base__retry_txn, svn_fs_base__retry):

Add 'destroy_trail_pool' parameter.

* subversion/libsvn_fs_base/trail.c

(do_retry): Add 'destroy_trail_pool', and, if set, destroy the trail

subpool even upon successful completion of the transaction.

(svn_fs_base__retry_debug, svn_fs_base__retry_txn, svn_fs_base__retry):

Add 'destroy_trail_pool' parameter, passed to do_retry().

* subversion/libsvn_fs_base/reps-strings.c,

* subversion/libsvn_fs_base/revs-txns.c,

* subversion/libsvn_fs_base/lock.c,

* subversion/libsvn_fs_base/dag.c,

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

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

* subversion/tests/libsvn_fs_base/strings-reps-test.c

Update all calls to svn_fs_base__retry() and svn_fs_base__retry_txn(),

passing TRUE for the new 'destroy_trail_pool' parameter iff the

caller didn't need any allocations made by the trail subsystem to

outlive the trail itself.

* subversion/libsvn_fs_base/tree.c

Same as above, but also...

(base_node_created_path, base_node_prop, svn_fs_base__miscellaneous_get,

base_copied_from, base_file_checksum): Use a scratch pool for the

trail work.

* subversion/libsvn_fs_base/uuid.c

Same as above, but also...

(svn_fs_base__get_uuid): Use a scratch pool for the trail work.

  1. … 10 more files in changeset.
Improve some messages.

* subversion/libsvn_fs_base/dag.c

(svn_fs_base__dag_finalize_edits):

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_contents, txn_body_read_rep):

* subversion/libsvn_fs_fs/fs_fs.c

(read_rep_offsets):

* subversion/libsvn_ra_neon/file_revs.c

(svn_ra_neon__get_file_revs):

* subversion/libsvn_ra_neon/get_deleted_rev.c

(svn_ra_neon__get_deleted_rev):

* subversion/libsvn_ra_neon/get_locations.c

(svn_ra_neon__get_locations):

* subversion/libsvn_ra_neon/get_location_segments.c

(svn_ra_neon__get_location_segments):

* subversion/libsvn_ra_neon/options.c

(svn_ra_neon__exchange_capabilities):

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): Improve some messages.

Found by: jensseidel

me

  1. … 8 more files in changeset.
Follow-up to r35017:

Allow to specify Berkeley DB header.

(It allows to build libsvn_fs_base when APR-Util isn't built with support for Berkeley DB.)

* build/ac-macros/berkeley-db.m4

(SVN_LIB_BERKELEY_DB, SVN_LIB_BERKELEY_DB_TRY): Allow to specify Berkeley DB

header in argument of the '--with-berkeley-db' option. Add conditional

inclusion of Berkeley DB header to 'subversion/svn_private_config.h'.

* configure.ac: Substitute '@SVN_DB_HEADER@' with appropriate value

in 'subversion/svn_private_config.h'.

* subversion/svn_private_config.hw: Include Berkeley DB header when

SVN_WANT_BDB is defined.

* subversion/libsvn_fs_base/bdb/bdb_compat.h:

* subversion/libsvn_fs_base/bdb/bdb-err.c:

* subversion/libsvn_fs_base/bdb/changes-table.h:

* subversion/libsvn_fs_base/bdb/dbt.c:

* subversion/libsvn_fs_base/bdb/dbt.h:

* subversion/libsvn_fs_base/bdb/env.h:

* subversion/libsvn_fs_base/bdb/nodes-table.h:

* subversion/libsvn_fs_base/bdb/reps-table.h:

* subversion/libsvn_fs_base/bdb/rev-table.h:

* subversion/libsvn_fs_base/bdb/strings-table.h:

* subversion/libsvn_fs_base/bdb/uuids-table.h:

* subversion/libsvn_fs_base/fs.c:

* subversion/libsvn_fs_base/fs.h:

* subversion/libsvn_fs_base/node-rev.c:

* subversion/libsvn_fs_base/node-rev.h:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/reps-strings.h:

* subversion/libsvn_fs_base/revs-txns.h:

* subversion/libsvn_fs_base/trail.c:

* subversion/libsvn_fs_base/trail.h:

* subversion/libsvn_fs_base/util/fs_skels.h: Define SVN_WANT_BDB and

include "svn_private_config.h" instead of defining APU_WANT_DB and

including <apu_want.h>.

  1. … 23 more files in changeset.
Revert r35103 because making the svn_checksum_t type opaque was unnecessary

obstruction, as suggested by gstein in the email thread

<http://svn.haxx.se/dev/archive-2009-01/0226.shtml>.

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_kind()

svn_checksum_get_size() (replacing svn_checksum_size())

svn_checksum_get_digest()

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,

subversion/libsvn_subr/checksum.c

(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,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/export.c,

subversion/libsvn_delta/text_delta.c,

subversion/libsvn_fs_base/bdb/checksum-reps-table.c,

subversion/libsvn_fs_base/bdb/dbt.c,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/reps-strings.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/util/fs_skels.c,

subversion/libsvn_fs_fs/dag.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs/fs-loader.c,

subversion/libsvn_fs_fs/rep-cache.c,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_subr/stream.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/update_editor.c

Adjust for the renaming of svn_checksum__from_digest().

Use the accessor functions instead of direct access.

* subversion/libsvn_subr/svn_base64.c

(svn_base64_from_checksum):

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.
Fix a possible segfault in the Berkeley DB backend.

Found by: rhuijben

* subversion/libsvn_fs_base/reps-strings.c

(txn_body_read_rep): If the checksum mismatches, don't use a bogus

pointer to generate the error message.

Delete trailing whitespace.

Follow-up to r26317 and r27598.

* build/generator/extractor.py:

* build/generator/gen_vcnet_vcproj.py:

* build/generator/gen_win.py:

* contrib/client-side/svnmerge/svnmerge-migrate-history-remotely.py:

* subversion/bindings/ctypes-python/csvn/repos.py:

* subversion/bindings/ctypes-python/csvn/wc.py:

* subversion/bindings/ctypes-python/examples/mucc.py:

* subversion/bindings/ctypes-python/setup.py:

* subversion/bindings/ctypes-python/test/localrepos.py:

* subversion/bindings/ctypes-python/test/remoterepos.py:

* subversion/bindings/ctypes-python/test/run_all.py:

* subversion/bindings/ctypes-python/test/svntypes.py:

* subversion/bindings/ctypes-python/test/wc.py:

* subversion/bindings/javahl/src/org/tigris/subversion/javahl/Operation.java:

* subversion/include/private/svn_auth_private.h:

* subversion/include/private/svn_sqlite.h:

* subversion/include/private/svn_wc_private.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_checksum.h:

* subversion/include/svn_client.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_dirent_uri.h:

* subversion/include/svn_path.h:

* subversion/include/svn_props.h:

* subversion/libsvn_client/commit_util.c:

* subversion/libsvn_client/copy.c:

* subversion/libsvn_client/deprecated.c:

* subversion/libsvn_client/export.c:

* subversion/libsvn_client/externals.c:

* subversion/libsvn_client/info.c:

* subversion/libsvn_client/merge.c:

* subversion/libsvn_client/mergeinfo.h:

* subversion/libsvn_client/ra.c:

* subversion/libsvn_client/repos_diff.c:

* subversion/libsvn_fs_base/bdb/checksum-reps-table.c:

* subversion/libsvn_fs_base/bdb/checksum-reps-table.h:

* subversion/libsvn_fs_base/bdb/miscellaneous-table.c:

* subversion/libsvn_fs_base/bdb/reps-table.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/dag.h:

* subversion/libsvn_fs_base/err.h:

* subversion/libsvn_fs_base/fs.c:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/tree.c:

* subversion/libsvn_fs_base/tree.h:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/libsvn_fs_fs/dag.h:

* subversion/libsvn_fs_fs/fs_fs.h:

* subversion/libsvn_fs/fs-loader.c:

* subversion/libsvn_fs/fs-loader.h:

* subversion/libsvn_fs_fs/rep-cache.c:

* subversion/libsvn_fs_fs/rep-cache.h:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_ra/compat.c:

* subversion/libsvn_ra_neon/log.c:

* subversion/libsvn_ra_neon/session.c:

* subversion/libsvn_ra_serf/log.c:

* subversion/libsvn_ra_serf/update.c:

* subversion/libsvn_ra_serf/util.c:

* subversion/libsvn_ra_serf/win32_auth_sspi.c:

* subversion/libsvn_repos/hooks.c:

* subversion/libsvn_repos/log.c:

* subversion/libsvn_repos/repos.h:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/cmdline.c:

* subversion/libsvn_subr/config_file.c:

* subversion/libsvn_subr/config_win.c:

* subversion/libsvn_subr/dirent_uri.c:

* subversion/libsvn_subr/dso.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/nls.c:

* subversion/libsvn_subr/simple_providers.c:

* subversion/libsvn_subr/sqlite.c:

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c:

* subversion/libsvn_subr/stream.c:

* subversion/libsvn_subr/win32_crypto.c:

* subversion/libsvn_wc/adm_ops.c:

* subversion/libsvn_wc/diff.c:

* subversion/libsvn_wc/props.c:

* subversion/libsvn_wc/status.c:

* subversion/libsvn_wc/tree_conflicts.c:

* subversion/libsvn_wc/tree_conflicts.h:

* subversion/libsvn_wc/update_editor.c:

* subversion/libsvn_wc/wc_db.h:

* subversion/svn/cl.h:

* subversion/svndumpfilter/main.c:

* subversion/svnlook/main.c:

* subversion/svn/propedit-cmd.c:

* subversion/svn/propget-cmd.c:

* subversion/svnserve/main.c:

* subversion/svn/status-cmd.c:

* subversion/svn/tree-conflicts.c:

* subversion/svn/util.c:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/copy_tests.py:

* subversion/tests/cmdline/info_tests.py:

* subversion/tests/cmdline/log_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/prop_tests.py:

* subversion/tests/cmdline/revert_tests.py:

* subversion/tests/cmdline/stat_tests.py:

* subversion/tests/cmdline/svntest/actions.py:

* subversion/tests/cmdline/svntest/tree.py:

* subversion/tests/cmdline/switch_tests.py:

* subversion/tests/cmdline/tree_conflict_tests.py:

* subversion/tests/cmdline/update_tests.py:

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

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

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

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

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

* subversion/tests/libsvn_wc/tree-conflict-data-test.c:

* tools/examples/svnlook.py: Delete trailing whitespace.

  1. … 112 more files in changeset.
Teach the Berkeley DB backend to store both MD5 and SHA1 checksums -- as

available and allowed for the FS format -- in the `representations' table.

* subversion/libsvn_fs_base/notes/structure

(Representations): Tweak BNF to show that we'll always store MD5,

and possibly also store SHA1, for representations.

* subversion/libsvn_fs/fs-loader.h,

* subversion/libsvn_fs/fs-loader.c

(root_vtable_t): Add 'kind' parameter to file_checksum() method,

passed into providers' file_checksum implementations.

* subversion/libsvn_fs_fs/tree.c

(fs_file_checksum): Add 'kind' parameter, and use it to filter the

returned data.

* subversion/libsvn_fs_base/fs.h

(representation_t): Rename 'checksum' member to 'md5_checksum', and

add 'sha1_checksum' member.

* subversion/libsvn_fs_base/reps-strings.h

(svn_fs_base__rep_contents_checksums): Was

svn_fs_base__rep_contents_checksum(). Rename 'checksum' parameter

to 'md5_checksum', and add 'sha1_checksum' parameter.

* subversion/libsvn_fs_base/reps-strings.c

(svn_fs_base__rep_contents_checksums): Was

svn_fs_base__rep_contents_checksum(). Rename 'checksum' parameter

to 'md5_checksum', and add 'sha1_checksum' parameter.

(make_fulltext_rep): Rename 'checksum' parameter to 'md5_checksum',

and add 'sha1_checksum' parameter, duping both.

(svn_fs_base__get_mutable_rep): Update call to make_fulltext_rep.

(txn_body_read_rep): Compare both MD5 and SHA1 checksums against

their stored values where possible.

(svn_fs_base__rep_contents): Allow checksum tests of either type of

checksum, but prefer a SHA1 comparison.

(struct rep_write_baton): Rename 'checksum_ctx' and 'checksum' to

'md5_checksum_ctx' and 'md5_checksum', respective; add

'sha1_checksum_ctx' and 'sha1_checksum'.

(rep_write_get_baton): Track renamed baton members, and also

initialize an MD5 checksum context.

(txn_body_write_rep): Update both checksum contexts.

(txn_body_write_close_rep): Copy both checksum contexts into the

representation.

(rep_write_close_contents): Finalize both checksum contexts.

(rep_contents_clear): Clear both representation checksums.

(svn_fs_base__rep_deltify): Use both representation checksums.

* subversion/libsvn_fs_base/dag.h

(svn_fs_base__dag_file_checksum): Add 'checksum_kind' parameter.

* subversion/libsvn_fs_base/dag.c

(svn_fs_base__dag_file_checksum): Add 'checksum_kind' parameter, and

update call to svn_fs_base__rep_contents_checksums().

(maybe_store_checksum_rep): Update call to

svn_fs_base__rep_contents_checksums().

(svn_fs_base__dag_finalize_edits): Update calls to

svn_fs_base__rep_contents_checksums(), performing checksum

comparisons against either MD5 or SHA1 as requested (if possible).

* subversion/libsvn_fs_base/tree.c

(struct file_checksum_args): Add 'kind' variable.

(txn_body_file_checksum): Pass baton's 'kind' into updated call to

svn_fs_base__dag_file_checksum().

(base_file_checksum): Add 'kind' parameter, and use it to populate

baton's 'kind' variable.

(txn_body_apply_textdelta): Update call to svn_fs_base__dag_file_checksum(),

asking for the same kind of checksum as the one we'll compare against.

* subversion/libsvn_fs_base/util/fs_skels.h

(svn_fs_base__unparse_representation_skel): Add 'format' parameter.

* subversion/libsvn_fs_base/util/fs_skels.c

(is_valid_representation_skel, svn_fs_base__parse_representation_skel):

Handle new representation format.

(prepend_checksum): New helper function.

(svn_fs_base__unparse_representation_skel): Add 'format' parameter,

and use prepend_checksum() as needed to handle the new

representation skel format.

* subversion/libsvn_fs_base/bdb/reps-table.c

(svn_fs_bdb__write_rep): Pass filesystem format version to updated

call to svn_fs_base__unparse_representation_skel().

* subversion/tests/libsvn_fs_base/strings-reps-test.c

(txn_body_read_rep): Update call to svn_fs_base__unparse_representation_skel.

  1. … 13 more files in changeset.
Merge the fs-rep-sharing branch to trunk.

This gives us significant space savings on both bdb and fsfs. See the

branch for individual log messages.

  1. … 38 more files in changeset.
Don't include svn_md5.h and apr_md5.h in files which don't use these headers.

* subversion/include/svn_base64.h:

* subversion/libsvn_client/commit.c:

* subversion/libsvn_client/commit_util.c:

* subversion/libsvn_client/export.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/fs.h:

* subversion/libsvn_fs_base/reps-strings.c:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/libsvn_fs_fs/dag.c:

* subversion/libsvn_fs_fs/fs_fs.c:

* subversion/libsvn_fs_fs/fs.h:

* subversion/libsvn_fs/fs-loader.c:

* subversion/libsvn_fs_fs/lock.c:

* subversion/libsvn_ra_neon/fetch.c:

* subversion/libsvn_ra_neon/get_dated_rev.c:

* subversion/libsvn_ra_neon/get_locations.c:

* subversion/libsvn_ra_neon/get_location_segments.c:

* subversion/libsvn_ra_svn/client.c:

* subversion/libsvn_ra_svn/editorp.c:

* subversion/libsvn_repos/reporter.c:

* subversion/libsvn_subr/cache-memcache.c:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/config_auth.c:

* subversion/libsvn_subr/config_file.c:

* subversion/libsvn_subr/md5.c:

* subversion/libsvn_subr/md5.h:

* subversion/libsvn_subr/svn_string.c:

* subversion/libsvn_wc/adm_crawler.c:

* subversion/libsvn_wc/adm_ops.c:

* subversion/libsvn_wc/questions.c:

* subversion/libsvn_wc/update_editor.c:

* subversion/mod_dav_svn/liveprops.c:

* subversion/mod_dav_svn/reports/mergeinfo.c:

* subversion/mod_dav_svn/reports/replay.c:

* subversion/mod_dav_svn/reports/update.c:

* subversion/svnserve/serve.c:

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

* subversion/tests/libsvn_repos/repos-test.c: Don't include svn_md5.h and

apr_md5.h in files which don't use these headers.

  1. … 37 more files in changeset.
Directly return some errors, removing superfluous invocations of SVN_ERR().

This only handles libsvn_fs_base. See r33043 for more discussion about the

general idea.

* subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/reps-strings.c,

subversion/libsvn_fs_base/bdb/txn-table.c,

subversion/libsvn_fs_base/bdb/reps-table.c,

subversion/libsvn_fs_base/bdb/locks-table.c,

subversion/libsvn_fs_base/bdb/copies-table.c,

subversion/libsvn_fs_base/bdb/strings-table.c,

subversion/libsvn_fs_base/bdb/lock-tokens-table.c,

subversion/libsvn_fs_base/bdb/uuids-table.c,

subversion/libsvn_fs_base/bdb/node-origins-table.c,

subversion/libsvn_fs_base/bdb/env.c,

subversion/libsvn_fs_base/bdb/changes-table.c,

subversion/libsvn_fs_base/bdb/nodes-table.c,

subversion/libsvn_fs_base/fs.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/lock.c,

subversion/libsvn_fs_base/dag.c:

Directly return errors from some called functions.

  1. … 16 more files in changeset.
Change the order of arguments for svn_checksum_final() to match our

convention that the returned value is set in the dereferenced pointer

in the first argument, not the second.

* subversion/include/svn_checksum.h

(svn_checksum_final):

Move the svn_checksum_t ** argument to be first, after the const

svn_checksum_ctx_t *.

* subversion/libsvn_subr/checksum.c

(svn_checksum_final):

Reorder the function's arguments.

* subversion/libsvn_fs_base/reps-strings.c

(txn_body_read_rep),

(rep_write_close_contents):

Reorder the arguments to svn_checksum_final().

* subversion/libsvn_fs_fs/fs_fs.c

(rep_read_contents),

(rep_write_contents_close),

(write_hash_rep):

Reorder the arguments to svn_checksum_final().

* subversion/libsvn_subr/stream.c

(close_handler_checksum):

Reorder the arguments to svn_checksum_final().

  1. … 4 more files in changeset.
More merging from the fs-rep-sharing branch. This time, merge bits of

the following revisions: r28976, r29040, r30035, r30651, r30784, r30788,

r30789, r30813, r30822, r30846, r30866, r31092, r31106, r31113.

This converts libsvn_fs_base to use the svn_checksum_t data type where

applicable.

  1. … 18 more files in changeset.
In the Subversion libraries, replace uses of "assert" and "abort" with the

new SVN_ERR_ASSERT and SVN_ERR_MALFUNCTION macros where possible. Replace

"if (cond) abort();" with "SVN_ERR_ASSERT(!cond)".

This is a like-for-like change except that the new macros allow the

application at run time to specify an alternative behaviour such as

returning an error object instead of aborting, and they are not affected by

the NDEBUG macro (so they are not compiled out in release-mode builds as

"assert" could be).

Omit libsvn_ra_serf because it uses assert and abort as placeholders for

unfinished development.

(61 files affected.)

  1. … 60 more files in changeset.