Log Message: |
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.
|