Checkout Tools
  • last updated 1 hour ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Docstring fixup in FSX. No functional change.

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/rev_file.c

* subversion/libsvn_fs_x/temp_serializer.c

* subversion/libsvn_fs_x/transaction.h

* subversion/libsvn_fs_x/util.h

(): Replace references to FSFS identifiers with their

respective FSX counterparts.

  1. … 7 more files in changeset.
Merge recent FSFS lock.c changes to FSX and fix a few conflicts.

This merges the revisions r1652068, 1657525, 1659212, 1659217,1659314

and 1678718.

  1. … 3 more files in changeset.
Update an obsolete comment about locking nonexistent paths.

* subversion/libsvn_fs_base/lock.c

(txn_body_lock): Update a comment: we don't allow locking a nonexistent

path, and haven't done so for a long time.

* subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_x/lock.c

(lock_body): Same.

  1. … 2 more files in changeset.
Implement svn_io_file_rename2() with FLUSH_TO_DISK flag to require OS to

wait until rename operation is actually written to disk. Discussed in thread

"svn commit: r1682265 - /subversion/trunk/subversion/libsvn_fs_fs/util.c" on

dev@s.a.o [1]

[1] http://svn.haxx.se/dev/archive-2015-05/0211.shtml

* subversion/include/svn_io.h

(svn_io_file_rename2): New function declaration.

(svn_io_file_rename): Deprecate.

* subversion/libsvn_subr/io.c

(win32_file_rename): Use MOVEFILE_WRITE_THROUGH flag in call to

MoveFileExW if FLUSH_TO_DISK is non-zero.

(svn_io_file_rename2): Revv from svn_io_file_rename(). Add FLUSH_TO_DISK

parameter and perform flush to disk operation depending on the platform:

use MoveFileEx flag on Windows, fsync() target directory on POSIX and

fsync() target file on all other platforms. This logic mostly copied

from svn_fs_fs__move_into_place().

(svn_io_copy_link, svn_io_copy_file, svn_io_write_atomic,

svn_io_write_version_file): Use svn_io_rename2() with

FLUSH_TO_DISK=FALSE instead of svn_io_rename().

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

(test_file_rename2): Simple tests for svn_io_file_rename2().

(test_funcs): Add test_file_rename2.

* subversion/libsvn_subr/deprecated.c

(svn_io_file_rename): Call svn_io_file_rename2() with FLUSH_TO_DISK=FALSE.

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/export.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/util.c

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/util.c

* subversion/libsvn_subr/config_auth.c

* subversion/libsvn_subr/stream.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_wc/copy.c

* subversion/libsvn_wc/node.c

* subversion/libsvn_wc/upgrade.c

* subversion/libsvn_wc/wc_db_pristine.c

* subversion/libsvn_wc/workqueue.c

(*): Use svn_io_file_rename2() with FLUSH_TO_DISK=FALSE instead of

svn_io_file_rename().

  1. … 21 more files in changeset.
Merge the fsx-1.10 development branch to trunk and remove the

BRANCH-README file. There were no conflicts.

Changes brings the latest FSX changes to /trunk.

  1. … 55 more files in changeset.
Apply FSFS lock change r1659217 to FSX.

* subversion/libsvn_fs_x/lock.c

(lock_expired): New helper function.

(get_lock): Use the new function.

(struct walk_locks_baton,

walk_digests_callback_t,

locks_walker,

walk_digest_files): Remove.

(walk_locks): Inline code from locks_walker() and walk_digest_files() with

use of new helper function.

Apply FSFS lock change r1659212 to FSX.

* subversion/subversion/libsvn_fs_x/lock.c:

(schedule_index_update): New helper function.

(struct lock_info_t,

struct unlock_info_t): Drop the unused fields.

(lock_body,

unlock_body): Rework the algorithm.

Apply FSFS lock change r1657525 to FSX.

* subversion/subversion/libsvn_fs_x/lock.c:

(lock_body): Move allocation from here ...

(svn_fs_fs__lock): ... to here.

(unlock_body): Move allocation from here ...

(unlock_single, svn_fs_fs__unlock): ... to here.

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

(obtain_write_lock_failure_test): Enable for FSX.

  1. … 1 more file in changeset.
Address points raised by API review.

* subversion/include/svn_fs.h

(svn_fs_lock_target_create): Rename pool parameter to result_pool.

(svn_fs_lock_callback_t): Rename pool parameter to scratch_pool.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_lock_target_create): Rename pool parameter to result_pool.

* subversion/libsvn_fs_fs/lock.c

(svn_fs_fs__lock, svn_fs_fs__unlock): Use iterpool.

* subversion/libsvn_fs_base/lock.c

(svn_fs_base__lock, svn_fs_base__unlock): Use iterpool.

* subversion/libsvn_fs_x/lock.c

(svn_fs_fs__lock, svn_fs_fs__unlock): Use iterpool.

  1. … 4 more files in changeset.
Make all ra layers and fs backends consistently report errors on invalid

and out of date revisions passed to the lock api: in most cases via the

callback.

* subversion/include/svn_error.h

(SVN_ERR_IS_LOCK_ERROR): Implement the same behavior as implemented

inside the filesystems.

* subversion/libsvn_fs_base/lock.c

(includes): Add revs-txns.h.

(svn_fs_base__lock): Check revisions against youngest like in fsfs.

* subversion/libsvn_fs_fs/lock.c

(check_lock): Add youngest_rev argument and use it for sanity check.

(lock_body): Update caller.

* subversion/libsvn_fs_x/lock.c

(check_lock): Add youngest_rev argument and use it for sanity check.

(lock_body): Update caller.

* subversion/libsvn_ra_serf/lock.c

(run_locks): Assume that 404 errors likely have good server errors, to

avoid duplicate errors in the error chain.

* subversion/mod_dav_svn/util.c

(dav_svn__convert_err): Report SVN_ERR_FS_NO_SUCH_REVISION as status 404

(invalid target) instead of 500 (server error).

  1. … 5 more files in changeset.
Apply the standard pre-branch whitespace cleanup via

tools/dev/remove-trailing-whitespace.zsh

There should be no functional changes.

* .ycm_extra_conf.py

* build/generator/gen_win.py

* build/generator/gen_win_dependencies.py

* subversion/bindings/javahl/native/EditorProxy.h

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

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

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

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

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

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

* subversion/bindings/swig/ruby/test/test_fs.rb

* subversion/bindings/swig/ruby/test/util.rb

* subversion/bindings/swig/ruby/test/windows_util.rb

* subversion/include/private/svn_fs_fs_private.h

* subversion/include/private/svn_packed_data.h

* subversion/include/private/svn_repos_private.h

* subversion/include/private/svn_sorts_private.h

* subversion/include/private/svn_subr_private.h

* subversion/include/private/svn_wc_private.h

* subversion/include/svn_auth.h

* subversion/include/svn_cache_config.h

* subversion/include/svn_client.h

* subversion/include/svn_cmdline.h

* subversion/include/svn_diff.h

* subversion/include/svn_fs.h

* subversion/include/svn_io.h

* subversion/include/svn_ra.h

* subversion/include/svn_repos.h

* subversion/include/svn_string.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/log.c

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/svndiff.c

* subversion/libsvn_diff/parse-diff.c

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs_base/lock.c

* subversion/libsvn_fs_fs/cached_data.c

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/hotcopy.c

* subversion/libsvn_fs_fs/id.c

* subversion/libsvn_fs_fs/index.c

* subversion/libsvn_fs_fs/index.h

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_fs/low_level.c

* subversion/libsvn_fs_fs/low_level.h

* subversion/libsvn_fs_fs/pack.c

* subversion/libsvn_fs_fs/recovery.c

* subversion/libsvn_fs_fs/rev_file.c

* subversion/libsvn_fs_fs/revprops.c

* subversion/libsvn_fs_fs/revprops.h

* subversion/libsvn_fs_fs/stats.c

* subversion/libsvn_fs_fs/transaction.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_fs_fs/verify.c

* subversion/libsvn_fs_x/cached_data.c

* subversion/libsvn_fs_x/changes.c

* subversion/libsvn_fs_x/dag.h

* subversion/libsvn_fs_x/fs.h

* subversion/libsvn_fs_x/fs_id.c

* subversion/libsvn_fs_x/fs_x.c

* subversion/libsvn_fs_x/hotcopy.c

* subversion/libsvn_fs_x/hotcopy.h

* subversion/libsvn_fs_x/index.c

* subversion/libsvn_fs_x/index.h

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/lock.h

* subversion/libsvn_fs_x/low_level.c

* subversion/libsvn_fs_x/low_level.h

* subversion/libsvn_fs_x/noderevs.c

* subversion/libsvn_fs_x/pack.c

* subversion/libsvn_fs_x/reps.c

* subversion/libsvn_fs_x/rev_file.c

* subversion/libsvn_fs_x/revprops.c

* subversion/libsvn_fs_x/revprops.h

* subversion/libsvn_fs_x/string_table.c

* subversion/libsvn_fs_x/string_table.h

* subversion/libsvn_fs_x/transaction.c

* subversion/libsvn_fs_x/tree.c

* subversion/libsvn_fs_x/util.c

* subversion/libsvn_fs_x/verify.c

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_serf/serf.c

* subversion/libsvn_ra_serf/update.c

* subversion/libsvn_ra_serf/util.c

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_repos/authz_pool.c

* subversion/libsvn_repos/config_pool.c

* subversion/libsvn_repos/dump.c

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_subr/bit_array.c

* subversion/libsvn_subr/cache-membuffer.c

* subversion/libsvn_subr/config.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/fnv1a.c

* subversion/libsvn_subr/gpg_agent.c

* subversion/libsvn_subr/hash.c

* subversion/libsvn_subr/io.c

* subversion/libsvn_subr/object_pool.c

* subversion/libsvn_subr/packed_data.c

* subversion/libsvn_subr/prefix_string.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/sqlite.c

* subversion/libsvn_subr/subst.c

* subversion/libsvn_subr/sysinfo.c

* subversion/libsvn_subr/types.c

* subversion/libsvn_subr/utf.c

* subversion/libsvn_subr/utf8proc/utf8proc_data.c

* subversion/libsvn_subr/x509info.c

* subversion/libsvn_wc/diff.h

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc.h

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db.h

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/mod_dav_svn.c

* subversion/mod_dav_svn/status.c

* subversion/svn/auth-cmd.c

* subversion/svn/info-cmd.c

* subversion/svn/mergeinfo-cmd.c

* subversion/svn/notify.c

* subversion/svn/propget-cmd.c

* subversion/svn/svn.c

* subversion/svnadmin/svnadmin.c

* subversion/svnserve/logger.c

* subversion/svnserve/serve.c

* subversion/svnserve/server.h

* subversion/svnserve/svnserve.c

* subversion/tests/cmdline/blame_tests.py

* subversion/tests/cmdline/checkout_tests.py

* subversion/tests/cmdline/commit_tests.py

* subversion/tests/cmdline/export_tests.py

* subversion/tests/cmdline/externals_tests.py

* subversion/tests/cmdline/lock_tests.py

* subversion/tests/cmdline/merge_tests.py

* subversion/tests/cmdline/merge_tree_conflict_tests.py

* subversion/tests/cmdline/move_tests.py

* subversion/tests/cmdline/redirect_tests.py

* subversion/tests/cmdline/stat_tests.py

* subversion/tests/cmdline/svnadmin_tests.py

* subversion/tests/cmdline/switch_tests.py

* subversion/tests/cmdline/update_tests.py

* subversion/tests/libsvn_client/client-test.c

* subversion/tests/libsvn_client/mtcc-test.c

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

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

* subversion/tests/libsvn_fs_fs/fs-fs-fuzzy-test.c

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

* subversion/tests/libsvn_fs_x/fs-x-pack-test.c

* subversion/tests/libsvn_fs_x/string-table-test.c

* subversion/tests/libsvn_ra/ra-test.c

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

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

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

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

* subversion/tests/libsvn_subr/packed-data-test.c

* subversion/tests/libsvn_subr/priority-queue-test.c

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

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

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

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

* subversion/tests/libsvn_wc/op-depth-test.c

* subversion/tests/svn_test_main.c

* tools/dev/benchmarks/RepoPerf/copy_repo.py

* tools/dev/benchmarks/RepoPerf/win_repo_bench.py

* tools/dev/build-svn-deps-win.pl

* tools/dev/fsfs-access-map.c

* tools/dev/po-merge.py

* tools/dev/x509-parser.c

* tools/diff/diff.c

* tools/dist/backport.pl

* tools/dist/backport_tests.py

* tools/hook-scripts/mailer/mailer.py

* tools/server-side/svnpubsub/daemonize.py

* win-tests.py

Remove unneeded whitespace via script.

  1. … 184 more files in changeset.
Sync FSX with FSFS: Merge lock fix r1658482, this fixes locks-test 15.

  1. … 1 more file in changeset.
In FSX, structs shall have a "_t" suffix and a typedef for simplicity.

Fix this for the baton types that violate it in lock.c.

* subversion/libsvn_fs_x/lock.c

(walk_locks_baton): Rename to ...

(walk_locks_baton_t): ... this and typedef it.

(locks_walker,

walk_locks): Update references to it.

(lock_baton): Rename to ...

(lock_baton_t): ... this and typedef it.

(check_lock,

lock_body,

svn_fs_x__lock): Update references to it.

(unlock_baton): Rename to ...

(unlock_baton_t): ... this and typedef it.

(check_unlock

unlock_body,

unlock_single,

svn_fs_x__unlock): Update references to it.

In FSX, typedef a bunch of structs that are already named correctly but are

missing a typedef. Remove the "struct " prefix everywhere they get used.

* subversion/libsvn_fs_x/caching.c

(dump_cache_baton_t): Add typedef.

(dump_cache_statistics,

init_callbacks): Shorten uses.

* subversion/libsvn_fs_x/fs.c

(x_freeze_baton_t): Add typedef.

(x_freeze_body,

x_freeze_body2,

x_freeze): Shorten uses.

* subversion/libsvn_fs_x/fs_x.c

(upgrade_baton_t): Add typedef.

(upgrade_body,

svn_fs_x__upgrade): Shorten uses.

* subversion/libsvn_fs_x/lock.c

(lock_info_t): Add typedef.

(lock_body): Shorten uses.

(unlock_info_t): Add typedef.

(unlock_body,

svn_fs_x__unlock): Shorten uses.

  1. … 3 more files in changeset.
Remove unused POOL parameters from static functions in FSX/lock.c.

* subversion/libsvn_fs_x/lock.c

(hash_fetch): Drop POOL parameter.

(read_digest_file): Update caller.

(verify_lock): Drop POOL parameter.

(get_locks_callback,

svn_fs_x__allow_locked_operation): Update callers.

In FSX, move path constructor function declarations from fs_x.h to util.h .

Their implementations are already in utils.c

* subversion/libsvn_fs_x/fs_x.h

(svn_fs_x__path_rev_absolute,

svn_fs_x__path_current): Move these declarations from here ...

* subversion/libsvn_fs_x/util.h

(svn_fs_x__path_rev_absolute,

svn_fs_x__path_current): ... to here.

* subversion/libsvn_fs_x/lock.c

* subversion/libsvn_fs_x/rep-cache.c

(): Add missing #include of the target header.

  1. … 3 more files in changeset.
Continue migrating FSX to the two-pool paradigm. Many single-pool functions

don't allocate a return value, i.e. their pools can immediately be renamed

to SCRATCH_POOL. Do this for lock.* .

* subversion/libsvn_fs_x/lock.h

(svn_fs_x__get_locks,

svn_fs_x__allow_locked_operation): POOL is actually a SCRATCH_POOL.

* subversion/libsvn_fs_x/lock.c

(write_digest_file,

set_lock,

delete_lock,

add_to_digest,

delete_from_digest,

svn_fs_x__allow_locked_operation,

unlock_single,

svn_fs_x__get_locks): Same.

  1. … 1 more file in changeset.
Sync FSX with FSFS: Merge assorted fixes and improvements from libsvn_fs_fs

and resolve the usual conflicts with FSX. The merged revisions are:

r1605633 - remove obsolete race handling between 'hotcopy' and 'pack'

r1616613 - improve config file documentation

r1620930 - reintroduce SVN_FS_FS__USE_LOCK_MUTEX conditional flag

r1622946 - fix rev/pack file open retry after pack

r1623368 - factor out some common code into svn_fs_fs__packed_base_rev()

r1623381 - bump instance ID upon recover

r1623402 - don't use instance IDs as part of the cache keys

r1626246 - fix some compiler warnings

r1627949 - make sure to detect format upgrades before committing

r1628161 - add missing error tracing

r1628393, r1628415 - fix compiler warnings in index.c

r1632908 - fix error leak

  1. … 14 more files in changeset.
Following the availability of apr_hash_this_key() etc. in APR v1.5, use

these in Subversion code instead of svn__apr_hash_index_key() etc. Provide

substitutes only when APR is too old to provide them.

* subversion/include/svn_types.h,

subversion/libsvn_subr/iter.c

(svn__apr_hash_index_key,

svn__apr_hash_index_klen,

svn__apr_hash_index_val):

Rename to apr_hash_this_key, apr_hash_this_key_len, apr_hash_this_val.

Declare and define them only if APR is older than 1.5.

Everywhere else: track the renames.

  1. … 102 more files in changeset.
Apply FSFS part of r1584879 to FSX.

* subversion/libsvn_fs_x/lock.c

(struct unlock_info_t): Add done member.

(unlock_body): Set done when unlock is successful.

(svn_fs_fs__lock): Generate an error if there is no lock and no fs_err.

(svn_fs_fs__unlock): Generate an error if the done flag is not set

and there is no fs_err.

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_x/lock.c

(unlock_single): Followup to 1584706, remove spurious variable declaration.

  1. … 1 more file in changeset.
Add comments, no functional change.

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_x/lock.c

(struct unlock_baton, unlock_single): Add comments.

  1. … 1 more file in changeset.
Fix typos in local variable names and comments.

* subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_x/lock.c

(svn_fs_fs__lock, svn_fs_fs__unlock,

svn_fs_x__lock, svn_fs_x__unlock): s/cannonical/canonical/.

  1. … 1 more file in changeset.
Add doc strings to several locking-related functions and structures

in fs_base, fs_fs and fs_x.

  1. … 5 more files in changeset.
Convert the new multi-path lock and unlock functions to a callback API,

rename from _lock2 and _unlock2 to _lock_many and _unlock_many.

* subversion/include/svn_fs.h

(svn_fs_lock_result_t): Remove.

(svn_fs_lock_callback_t):

(svn_fs_lock2): Rename to...

(svn_fs_lock_many): ...this, change to callback API.

(svn_fs_unlock2): Rename to...

(svn_fs_unlock_many): ...this, change to callback API.

* subversion/include/svn_repos.h

(svn_repos_fs_lock2): Rename to...

(svn_repos_fs_lock_many): ...this, change to callback API.

(svn_repos_fs_unlock2): Rename to...

(svn_repos_fs_unlock_many): ...this, change to callback API.

* subversion/libsvn_fs/fs-loader.h

(struct fs_vtable_t): Change lock and unlock to callback API.

* subversion/libsvn_fs/fs-loader.c

(struct lock_many_baton_t, lock_many_cb): New.

(svn_fs_lock2): Rename to...

(svn_fs_lock_many): ...this, change to callback API.

(struct lock_baton_t, lock_cb): New.

(svn_fs_lock): Adapt to callback API.

(svn_fs_unlock2): Rename to...

(svn_fs_unlock_many): ...this, change to callback API.

(svn_fs_unlock): Adapt to callback API.

* subversion/libsvn_fs_fs/lock.h

* subversion/libsvn_fs_fs/lock.c

(svn_fs_fs__lock, svn_fs_fs__unlock): Change to callback API.

* subversion/libsvn_fs_base/lock.h

* subversion/libsvn_fs_base/lock.c

(svn_fs_base__lock, svn_fs_base__unlock): Change to callback API.

* subversion/libsvn_fs_x/lock.h

* subversion/libsvn_fs_x/lock.c

(svn_fs_x__lock, svn_fs_x__unlock): Change to callback API.

* subversion/libsvn_ra_local/ra_plugin.c

(deltify_etc): Adapt to callback API.

(struct lock_baton_t, lock_cb): New.

(svn_ra_local__lock, svn_ra_local__unlock): Adapt to callback API.

* subversion/libsvn_repos/fs-wrap.c

(struct lock_many_baton_t, lock_many_cb): New.

(svn_repos_fs_lock2): Rename to...

(svn_repos_fs_lock_many): ...this, change to callback API.

(struct lock_baton_t, lock_cb): New.

(svn_repos_fs_lock): Adapt to callback API.

(svn_repos_fs_unlock2): Rename to...

(svn_repos_fs_unlock_many): ...this, change to callback API.

(svn_repos_fs_unlock): Adapt to callback API.

* subversion/mod_dav_svn/version.c

(unlock_many_cb): New.

(release_locks): Adapt to callback API.

* subversion/svnserve/serve.c

(write_lock): Make parameter const.

(lock_cb): New.

(unlock_paths): Adapt to callback API.

(struct lock_result_t, struct lock_many_baton_t, lock_many_cb): New.

(clear_lock_result_hash): New.

(lock_many, unlock_many): Adapt to callback API.

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

(struct lock_result_t): New.

(expect_lock, expect_error, expect_unlock, expect_unlock_error): Change

to struct lock_result_t.

(struct lock_many_baton_t, lock_many_cb): New.

(lock_multiple_paths): Adapt to callback API.

* subversion/tests/libsvn_ra/ra-test.c

(struct lock_result_t): New.

(lock_cb, expect_lock, expect_error, expect_unlock, expect_unlock_error,

lock_test): Change to struct lock_result_t.

  1. … 15 more files in changeset.
Following up on r1582370 which was a followup to r1577280, apply the same

usage of uninitialized variable fix to fsx.

* subversion/libsvn_fs_fs/lock.c

(unlock_body): Properly initialize struct before using members from it.

Without this patch info.fs_err will be read before setting a few lines

later... and then the total struct copied in the array.

Merge the fsfs-lock-many branch to trunk. This introduce multiple

path lock and unlock at the FS level and connects it up over ra_local

and ra_svn, and also uses it post-commit to release locks. A summary

of the branch changes:

* subversion/include/svn_fs.h

(svn_fs_lock_target_t, svn_fs_lock_result_t,

svn_fs_lock2, svn_fs_unlock2): new.

* subversion/include/svn_repos.h

(svn_repos_fs_lock2, svn_repos_fs_unlock2): new.

* subversion/include/svn_error.h

(SVN_ERR_IS_LOCK_ERROR, SVN_ERR_IS_UNLOCK_ERROR): Add pre- hook errors.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_lock2, svn_fs_unlock2): New.

* subversion/libsvn_fs/fs-loader.h

(fs_vtable_t): Change lock and unlock parameters.

* subversion/libsvn_fs_fs/lock.c

* subversion/libsvn_fs_x/lock.c

(svn_fs_fs__lock, svn_fs_fs__unlock): New multiple path implementation.

* subversion/libsvn_fs_base/lock.c

(svn_fs_base__lock, svn_fs_base__unlock): Iterate over paths.

* subversion/libsvn_fs_fs/lock.h

(svn_fs_fs__lock, svn_fs_fs__unlock): Change parameters.

* subversion/libsvn_fs_x/lock.h

(svn_fs_x__lock, svn_fs_x__unlock): Change parameters.

* subversion/libsvn_fs_base/lock.h

(svn_fs_base__lock, svn_fs_base__unlock): Change parameters.

* subversion/libsvn_repos/fs-wrap.c

(svn_repos_fs_lock2, svn_repos_fs_unlock2): New.

* subversion/libsvn_repos/repos.c

(SVN_REPOS__HOOK_POST_LOCK, SVN_REPOS__HOOK_POST_UNLOCK): Tweak hook

template text.

* subversion/libsvn_ra_local/ra_plugin.c

(deltify_etc, svn_ra_local__lock, svn_ra_local__unlock): Use new API.

* subversion/mod_dav_svn/version.c

(release_locks): Use new API.

* subversion/svnserve/serve.c

(unlock_paths, lock_many, unlock_many): Use new API.

* subversion/libsvn_subr/log.c

* subversion/libsvn_fs_fs/lock.h

(svn_fs_fs__lock, svn_fs_fs__unlock,

svn_log__lock_one_path, svn_log__unlock_one_path): Change parameter.

* subversion/libsvn_client/locking_commands.c

(store_locks_callback): Tweak error handling.

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

(lock_multiple_paths): New test.

* subversion/tests/libsvn_ra/ra-test.c

(lock_test): New test.

* subversion/tests/cmdline/authz_tests.py

(authz_locking): Tweak expectations.

* subversion/tests/cmdline/lock_tests.py

(block_unlock_if_pre_unlock_hook_fails, lock_hook_messages): Tweak

expectations.

(failing_post_hooks): New.

  1. … 26 more files in changeset.
Introduce a null-pointer constant that we can use as a termination sentinel

in variable argument lists. This avoids the ugliness of writing

"(char *) NULL" all over the place.

* subversion/include/svn_types.h (SVN_VA_NULL): New symbol.

* subversion/include/svn_dirent_uri.h (svn_dirent_join_many),

subversion/include/svn_path.h (svn_path_join_many),

subversion/include/svn_xml.h (svn_xml_make_open_tag):

Update docstrings, mentioning SVN_VA_NULL as the argument list terminator.

[Lots of implementation files]: Replace typecast-NULL with SVN_VA_NULL in

function calls with variable argument lists.

  1. … 89 more files in changeset.
Cast NULL to (char *) in vararg calls to svn_dirent_join_many

and svn_path_join_many.

* subversion/libsvn_fs_fs/lock.c

(digest_path_from_digest, digest_path_from_path): here

* subversion/libsvn_fs_fs/transaction.c

(create_txn_dir, create_txn_dir_pre_1_5): here

* subversion/libsvn_fs_fs/util.c

(svn_fs_fs__path_rev_packed, svn_fs_fs__path_rev_shard,

svn_fs_fs__path_rev, svn_fs_fs__path_revprops_shard,

svn_fs_fs__path_revprops_pack_shard, svn_fs_fs__path_revprops,

svn_fs_fs__path_txn_dir, svn_fs_fs__path_txn_proto_rev,

svn_fs_fs__path_txn_proto_rev_lock, svn_fs_fs__path_node_origin): here

* subversion/libsvn_fs_x/lock.c

(digest_path_from_digest, digest_path_from_path): here

* subversion/libsvn_fs_x/transaction.c

(create_txn_dir): here

* subversion/libsvn_fs_x/util.c

(svn_fs_x__path_rev_packed, svn_fs_x__path_rev_shard,

svn_fs_x__path_revprops_shard,

svn_fs_x__path_revprops_pack_shard,

svn_fs_x__path_txn_dir, svn_fs_x__path_txn_proto_rev,

svn_fs_x__path_txn_proto_rev_lock, svn_fs_x__path_node_origin): here

* subversion/libsvn_subr/config_file.c

(svn_config__sys_config_path, svn_config_get_user_config_path): here

* subversion/libsvn_wc/adm_files.c

(svn_wc__adm_child): here

* subversion/libsvn_wc/upgrade.c

(build_lockfile_path, bump_to_29): here

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_temp_wcroot_tempdir): here

* subversion/libsvn_wc/wc_db_pristine.c

(get_pristine_fname): here

* subversion/mod_authz_svn/mod_authz_svn.c

(get_access_conf): here

* subversion/tests/cmdline/entries-dump.c

(entries_dump): here

* subversion/tests/libsvn_client/client-test.c

(test_patch): here

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

(pack_filesystem, pack_even_filesystem, recover_fully_packed): here

* subversion/tests/libsvn_fs_x/fs-x-pack-test.c

(pack_filesystem, pack_even_filesystem, recover_fully_packed): here

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

(test_dirent_join): here

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

(test_path_join): here

* subversion/tests/libsvn_wc/entries-compat.c

(test_entries_alloc, test_stubs): here

  1. … 18 more files in changeset.
Merge fsx branch into /trunk with no conflicts.

Remove BRANCH-README.

  1. … 83 more files in changeset.