Checkout Tools
  • last updated 5 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1573006 is being indexed.

Fix some typos.

* CHANGES:

* contrib/cgi/mirror_dir_through_svn.cgi:

* contrib/client-side/emacs/psvn.el:

* contrib/client-side/svn2cl/svn2cl.xsl:

* contrib/hook-scripts/remove-zombie-locks.py:

* contrib/hook-scripts/syntax-check.sh:

* contrib/server-side/svnstsw/configure.ac:

* notes/assurance.txt:

* notes/fs-improvements.txt:

* notes/knobs:

* notes/merge-tracking/func-spec.html:

* notes/merge-tracking/summit-survey.html:

* notes/wc-ng/design:

* notes/wc-ng/locking:

* notes/wc-ng/nodes:

* subversion/bindings/ctypes-python/csvn/core/__init__.py:

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

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ConflictResult.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java:

* subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNRepos.java:

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

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

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

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

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

* subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java:

* subversion/bindings/javahl/tests/org/tigris/subversion/javahl/BasicTests.java:

* subversion/bindings/swig/include/proxy_apr.swg:

* subversion/bindings/swig/perl/native/Client.pm:

* subversion/bindings/swig/perl/native/t/3client.t:

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

* subversion/include/private/svn_diff_tree.h:

* subversion/include/private/svn_io_private.h:

* subversion/include/private/svn_ra_svn_private.h:

* subversion/include/private/svn_string_private.h:

* subversion/include/svn_io.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_props.h:

* subversion/libsvn_client/copy_foreign.c:

* subversion/libsvn_client/diff.c:

* subversion/libsvn_client/merge.c:

* subversion/libsvn_delta/xdelta.c:

* subversion/libsvn_diff/diff4.c:

* subversion/libsvn_diff/util.c:

* subversion/libsvn_fs/editor.c:

* subversion/libsvn_fs_fs/index.c:

* subversion/libsvn_fs_fs/temp_serializer.c:

* subversion/libsvn_fs_fs/temp_serializer.h:

* subversion/libsvn_fs_fs/transaction.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_x/fs.h:

* subversion/libsvn_fs_x/index.c:

* subversion/libsvn_fs_x/reps.c:

* subversion/libsvn_fs_x/temp_serializer.c:

* subversion/libsvn_fs_x/temp_serializer.h:

* subversion/libsvn_fs_x/transaction.c:

* subversion/libsvn_fs_x/tree.c:

* subversion/libsvn_ra_serf/README:

* subversion/libsvn_ra_svn/protocol:

* subversion/libsvn_repos/dump.c:

* subversion/libsvn_repos/hooks.c:

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

* subversion/libsvn_subr/dirent_uri.c:

* subversion/libsvn_subr/io.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/string.c:

* subversion/libsvn_subr/subst.c:

* subversion/libsvn_wc/entries.c:

* subversion/libsvn_wc/externals.c:

* subversion/libsvn_wc/lock.c:

* subversion/libsvn_wc/update_editor.c:

* subversion/svn/file-merge.c:

* subversion/svn/status-cmd.c:

* subversion/svnlook/svnlook.c:

* subversion/svnrdump/load_editor.c:

* subversion/svnserve/svnserve.c:

* subversion/tests/cmdline/commit_tests.py:

* subversion/tests/cmdline/diff_tests.py:

* subversion/tests/cmdline/merge_reintegrate_tests.py:

* subversion/tests/cmdline/merge_tests.py:

* subversion/tests/cmdline/revert_tests.py:

* subversion/tests/cmdline/svnauthz_tests.py:

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

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

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

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

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

* subversion/tests/libsvn_wc/db-test.c:

* subversion/tests/svn_test_main.c:

* tools/dev/trails.py: Fix some typos.

Patch by: Veres Lajos <vlajos{_AT_}gmail.com>

(I removed some changes that were wrong or can't be made due to API breakage)

  1. … 90 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(get_logs): Fix the error message: it was mis-reporting the expected result.

Fix compiler warning in repos library C tests.

Technically, I could just cast the calculation of max_logs to an (int). But

this seems more correct to me. An unlimited log run could return more logs than

a signed int can hold. We can't possibly return more logs than svn_revnum_t can

hold. For the purposes of a test it doesn't matter. However, I view our tests

as also example code and if someone was following this example in a real

implementation I think this code would lead them down a path with potential

problems. The potential infinite loop issue doesn't apply to real examples

becuase nobody loops the possible limit values except in tests.

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

(get_logs): Update max_logs, num_logs and num_expected to be svn_revnum_t.

(log_receiver): Update the type of the baton to match get_logs().

In preparation for committing over RA with a specified svn:date,

change the FS implementation from a flag in svn_fs_commit_txn2 to

a flag passed to svn_fs_begin_txn2.

* subversion/include/svn_fs.h

(SVN_FS_TXN_CLIENT_DATE): New.

(svn_fs_commit_txn2): Remove.

(svn_fs_commit_txn): Remove deprecation.

* subversion/libsvn_fs/fs-loader.h

(struct txn_vtable_t): Remove set_timestamp parameter from commit.

(SVN_FS__PROP_TXN_CLIENT_DATE): New.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_commit_txn2): Remove.

(svn_fs_change_txn_prop, svn_fs_change_txn_props): Drop changes to the

internal property.

* subversion/libsvn_fs/editor.c

(svn_fs__editor_commit): Use svn_fs_commit_txn.

* subversion/libsvn_fs_fs/transaction.h

(svn_fs_fs__commit): Remove set_timestamp parameter.

* subversion/libsvn_fs_fs/transaction.c

(svn_fs_fs__change_txn_props): Record svn:date change.

(write_final_revprop): Remove set_timestamp parameter.

(struct commit_baton): Remove set_timestamp member.

(commit_body): Update call.

(svn_fs_fs__commit): Remove set_timestamp parameter.

(svn_fs_fs__begin_txn): Set new temporary property.

* subversion/libsvn_fs_fs/tree.h

(svn_fs_fs__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_fs/tree.c

(svn_fs_fs__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_base/dag.h

(svn_fs_base__dag_commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_base/dag.c

(svn_fs_base__dag_commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_base/revs-txns.c

(svn_fs_base__set_txn_prop): Record svn:date change.

(txn_body_begin_txn): Set new temporary property.

* subversion/libsvn_fs_base/tree.h

(svn_fs_base__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_base/tree.c

(struct commit_args): Remove set_timestamp member.

(txn_body_commit): Update call.

(svn_fs_base__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_x/transaction.h

(svn_fs_x__commit): Remove set_timestamp parameter.

* subversion/libsvn_fs_x/transaction.c

(change_txn_props): Record svn:date change.

(write_final_revprop): Remove set_timestamp parameter.

(struct commit_baton): Remove set_timestamp member.

(commit_body): Update call.

(svn_fs_x__commit): Remove set_timestamp parameter.

(svn_fs_x__begin_txn): Set new temporary property.

* subversion/libsvn_fs_x/tree.h

(svn_fs_x__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_fs_x/tree.c

(svn_fs_x__commit_txn): Remove set_timestamp parameter.

* subversion/libsvn_repos/fs-wrap.c

(svn_repos_fs_commit_txn): Use svn_fs_commit_txn.

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

(new_revision_record): Set SVN_FS_TXN_CLIENT_DATE.

(close_revision): Use svn_fs_commit_txn.

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

(commit_timestamp): Set SVN_FS_TXN_CLIENT_DATE, use svn_fs_commit_txn,

test setting internal property.

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

(upgrade_txns_to_log_addressing): Use svn_fs_commit_txn.

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

(test_config_pool): Use svn_fs_commit_txn.

  1. … 21 more files in changeset.
Make repos-test complete for pre-1.5 compat runs.

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

(node_location_segments): Report skipped tests as such.

(test_get_file_revs): Skip for pre-1.5 repos because the feature is

not supported for them.

Add "--parallel" option to our C tests.

Besides shaving off a few seconds off our total test execution time,

parallel execution also stresses our code and the tests themselves

harder. It uncovers things like improperly separated working sets

that make post-failure analysis harder.

Parallel mode is only available with APR 1.3+ and threads enabled.

The option will simply be ignored in other configurations. Further

limitations are cleanups being delayed to after all tests completed

and segfaults not being intercepted.

Some tests can't be executed in parallel. Therefore, we introduce

svn_test_max_threads a simple upper limit to the number of threads

supported that each test must define alongside the test_funcs array.

This patch sets it to "1" in many cases because the tests are so

small that multi-threaded execution is simply not worth it.

* build/run_tests.py

(TestHarness._run_c_test): Pass --parallel option to the individual

test applications.

* subversion/tests/svn_test.h

(svn_test_max_threads): Declare new external setting to be set by

every test application.

* subversion/tests/svn_test_main.c

(parallel): New command line option presence flag.

(parallel_opt,

cl_options): Declare the new "--parallel" option.

(svn_test_add_dir_cleanup): Synchronize shared pool access since

this might be called from multiple

threads at the same time.

(log_results): Result logger function factored out from do_test_num

to be shared between serialized and parallel test

execution code.

(do_test_num): Use that new function.

(test_params_t,

test_thread,

do_tests_concurrently): Threads, their parameter and the thread

starter for thread-pooled test execution.

(main): Handle the new option.

Call concurrent execution when in PARALLEL mode.

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

subversion/tests/libsvn_subr/named_atomic-test.c

(svn_test_max_threads): These tests don't support concurrent execution.

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

subversion/tests/libsvn_delta/window-test.c

subversion/tests/libsvn_diff/parse-diff-test.c

subversion/tests/libsvn_ra_local/ra-local-test.c

subversion/tests/libsvn_ra/ra-test.c

subversion/tests/libsvn_subr/auth-test.c

subversion/tests/libsvn_subr/cache-test.c

subversion/tests/libsvn_subr/checksum-test.c

subversion/tests/libsvn_subr/compat-test.c

subversion/tests/libsvn_subr/config-test.c

subversion/tests/libsvn_subr/crypto-test.c

subversion/tests/libsvn_subr/dirent_uri-test.c

subversion/tests/libsvn_subr/error-code-test.c

subversion/tests/libsvn_subr/error-test.c

subversion/tests/libsvn_subr/hashdump-test.c

subversion/tests/libsvn_subr/mergeinfo-test.c

subversion/tests/libsvn_subr/named_atomic-test.c

subversion/tests/libsvn_subr/opt-test.c

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

subversion/tests/libsvn_subr/path-test.c

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

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

subversion/tests/libsvn_subr/revision-test.c

subversion/tests/libsvn_subr/root-pools-test.c

subversion/tests/libsvn_subr/skel-test.c

subversion/tests/libsvn_subr/spillbuf-test.c

subversion/tests/libsvn_subr/sqlite-test.c

subversion/tests/libsvn_subr/stream-test.c

subversion/tests/libsvn_subr/string-test.c

subversion/tests/libsvn_subr/subst_translate-test.c

subversion/tests/libsvn_subr/time-test.c

subversion/tests/libsvn_subr/utf-test.c

subversion/tests/libsvn_wc/conflict-data-test.c

subversion/tests/libsvn_wc/wc-queries-test.c:

(svn_test_max_threads): These are too small to benefit from multi-threading.

* subversion/tests/libsvn_client/client-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_base/strings-reps-test.c

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

subversion/tests/libsvn_fs/fs-test.c

subversion/tests/libsvn_fs/locks-test.c

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

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

subversion/tests/libsvn_repos/repos-test.c

subversion/tests/libsvn_subr/io-test.c

subversion/tests/libsvn_subr/translate-test.c

subversion/tests/libsvn_wc/db-test.c

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

subversion/tests/libsvn_wc/wc-test.c

(svn_test_max_threads): Set concurrency limit to whatever various test

runs suggested as the most efficient value.

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

subversion/tests/libsvn_wc/pristine-store-test.c

(svn_test_max_threads): Set concurrency limit to "unbounded".

  1. … 54 more files in changeset.
Some refactoring. Provide a generic container implementation that

allows for the implementation of thread-safe, reference counting

containers for objects like configurations, authz and repositories.

Update the configuration pool to use that new internal API.

* subversion/include/private/svn_object_pool.h

(): new file

(svn_object_pool__t,

svn_object_pool__getter_t,

svn_object_pool__setter_t): declare API data types

(svn_object_pool__create,

svn_object_pool__pool,

svn_object_pool__mutex,

svn_object_pool__count,

svn_object_pool__lookup,

svn_object_pool__insert): declare API functions

* subversion/libsvn_subr/object_pool.c

(): new file

(object_ref_t): internal data type

(svn_object_pool__t): define API data type

(destroy_object_pool,

object_pool_cleanup,

remove_unused_objects,

object_ref_cleanup,

add_object_ref,

lookup,

insert,

default_getter,

default_setter): various utility functions

(svn_object_pool__create,

svn_object_pool__pool,

svn_object_pool__mutex,

svn_object_pool__count,

svn_object_pool__lookup,

svn_object_pool__insert): implement API functions

* subversion/include/private/svn_repos_private.h

(svn_repos__config_pool_create): add THREAD_SAFE flag

(svn_repos__config_pool_get): add optional KEY return parameter

* subversion/libsvn_repos/config_pool.c

(config_ref_t): rename to ...

(config_object_t): ... this; remove bits already covered by object pool

(in_repo_config_t): update commentary

(svn_repos__config_pool_t): base upon an object pool

(destroy_config_pool,

config_pool_cleanup,

config_ref_cleanup,

config_by_checksum,

remove_unused_configs): drop functionality now covered by object pool

(return_config_ref,

config_add): superseded by ...

(getter,

setter): ... these much simpler callbacks

(checksum_as_key): new utility function

(auto_parse,

add_checksum,

find_repos_config,

config_by_url,

svn_repos__config_pool_create,

svn_repos__config_pool_get): update and simplify implementation

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

(test_config_pool): update API caller

  1. … 4 more files in changeset.
Follow-up to r1538585.

* subversion/include/svn_repos.h

(test_repos_fs_type, test_funcs): Fix formatting.

Implement svn_repos_fs_type() for easy access to repository filesystem type.

* subversion/include/svn_repos.h

* subversion/libsvn_repos/repos.c

(svn_repos_fs_type): New.

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

(test_repos_fs_type): New test for svn_repos_fs_type() function.

(test_funcs): Add test_repos_fs_type.

  1. … 2 more files in changeset.
In case of in-repo authz data, we usually already have an open repository.

So, add that as an optional parameter to to config_pool getter to save the

expensive repo_open call.

* subversion/include/private/svn_repos_private.h

(svn_repos__config_pool_get): add optional preferred_repo parameter

* subversion/libsvn_repos/config_pool.c

(find_repos_config): use repo provided to us if that matches the path

(svn_repos__config_pool_get): parameter pass-through

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

(test_config_pool): update API caller

  1. … 2 more files in changeset.
Bring our config_pool API up on par with the standard config API

by adding support for MUST_EXIST and CASE_SENSITIVE parameters.

This requires a similar extension to the svn_repos__retrieve_config

API that we rely on. Since the underlying svn_config_t API already

support c/s, we simply need to pass the extra flag through to it.

The config_pool internal storage now harbors up to two alternative

config instances - one case sensitive one case in-sensitive. In most

cases, we will read any given config with consistent c/s settings,

i.e. only one of the config entries will actually be used.

* subversion/include/private/svn_repos_private.h

(svn_repos__retrieve_config): add c/s parameter to API

(svn_repos__config_pool_get): add c/s and must_exist parameters

* subversion/libsvn_repos/authz.c

(authz_retrieve_config_repo,

svn_repos__retrieve_config): add c/s pass-through parameter

(svn_repos__authz_read): update caller

* subversion/libsvn_repos/config_pool.c

(config_ref_t): use separate config struct for c/s and c/i

(return_config_ref): add c/s parameter and return appropriate config object

(config_by_checksum): add c/s parameter and check appropriate config object

for availability

(config_add): add c/s parameter and update the correct config variant

(auto_parse,

add_checksum,

find_repos_config): add c/s pass-through parameter

(config_by_url): add c/s parameter and select the correct config variant

(svn_repos__config_pool_get): add c/s pass-through parameter

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

(test_config_pool): update API caller

  1. … 3 more files in changeset.
Our svn_config_t struct contains temporary string buffers that will be

modified even in r/o access mode. Thus, it is inherently not thead-safe.

Introduce a private API function that will create shallow copies,

i.e. share the expensive config tree but use separate temp buffers.

* subversion/include/private/svn_subr_private.h

(svn_config__shallow_copy): declare new private API function

* subversion/libsvn_subr/config_file.c

(svn_config__shallow_copy): implement

* subversion/libsvn_repos/config_pool.c

(return_config_ref): return shallow copies to ensure the config

can be used safely from multiple threads

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

(test_config_pool): since the config pool always returns a new root

struct we need to check whether the actual

config tree is the same

  1. … 3 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(test_config_pool): Use a proper test directory to avoid trying to atomically

flush on my network source drive, which sometimes fails.

Update the repos tests to use proper path functions instead of apr_pstrcat to

avoid problems like those fixed in r1537364.

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

(in_repo_authz,

in_repo_groups_authz,

test_config_pool): Use proper uri and dirent functions instead of guessing.

Follow-up to r1537358: Fix - hopefully - tests on Windows.

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

(test_config_pool): prepend drive letter with a root slash

Provide a comprehensive test for the config_pool API.

* subversion/tests/libsvn_repos

svn:ignore temporary config files

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

(test_config_pool): new test

(test_funcs): register it

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.
Merge fsx branch into /trunk with no conflicts.

Remove BRANCH-README.

  1. … 83 more files in changeset.
Fix the #include order such that svn_private_config.h is always

included first before any other svn header - if we also include

svn_hash.h.

* subversion/bindings/javahl/native/org_apache_subversion_javahl_ConfigImpl_Category.cpp,

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

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

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

subversion/libsvn_auth_gnome_keyring/gnome_keyring.c,

subversion/libsvn_client/add.c,

subversion/libsvn_client/cat.c,

subversion/libsvn_client/changelist.c,

subversion/libsvn_client/cleanup.c,

subversion/libsvn_client/commit.c,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/copy.c,

subversion/libsvn_client/copy_foreign.c,

subversion/libsvn_client/ctx.c,

subversion/libsvn_client/delete.c,

subversion/libsvn_client/deprecated.c,

subversion/libsvn_client/diff.c,

subversion/libsvn_client/diff_local.c,

subversion/libsvn_client/diff_summarize.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/externals.c,

subversion/libsvn_client/import.c,

subversion/libsvn_client/info.c,

subversion/libsvn_client/iprops.c,

subversion/libsvn_client/list.c,

subversion/libsvn_client/locking_commands.c,

subversion/libsvn_client/log.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/prop_commands.c,

subversion/libsvn_client/ra.c,

subversion/libsvn_client/repos_diff.c,

subversion/libsvn_client/resolved.c,

subversion/libsvn_client/revert.c,

subversion/libsvn_client/status.c,

subversion/libsvn_client/switch.c,

subversion/libsvn_client/update.c,

subversion/libsvn_client/util.c,

subversion/libsvn_delta/compat.c,

subversion/libsvn_delta/xdelta.c,

subversion/libsvn_diff/parse-diff.c,

subversion/libsvn_diff/util.c,

subversion/libsvn_fs/access.c,

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

subversion/libsvn_fs_base/bdb/env.c,

subversion/libsvn_fs_base/dag.c,

subversion/libsvn_fs_base/fs.c,

subversion/libsvn_fs_base/lock.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_fs/caching.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs/fs-loader.c,

subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_fs/temp_serializer.c,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_fs_util/fs-util.c,

subversion/libsvn_ra/compat.c,

subversion/libsvn_ra/deprecated.c,

subversion/libsvn_ra_local/ra_plugin.c,

subversion/libsvn_ra/ra_loader.c,

subversion/libsvn_ra_serf/blame.c,

subversion/libsvn_ra_serf/blncache.c,

subversion/libsvn_ra_serf/commit.c,

subversion/libsvn_ra_serf/getlocations.c,

subversion/libsvn_ra_serf/getlocationsegments.c,

subversion/libsvn_ra_serf/getlocks.c,

subversion/libsvn_ra_serf/inherited_props.c,

subversion/libsvn_ra_serf/log.c,

subversion/libsvn_ra_serf/merge.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_ra_serf/options.c,

subversion/libsvn_ra_serf/property.c,

subversion/libsvn_ra_serf/replay.c,

subversion/libsvn_ra_serf/serf.c,

subversion/libsvn_ra_serf/update.c,

subversion/libsvn_ra_serf/util.c,

subversion/libsvn_ra_serf/xml.c,

subversion/libsvn_ra_svn/client.c,

subversion/libsvn_ra_svn/editorp.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/libsvn_repos/authz.c,

subversion/libsvn_repos/commit.c,

subversion/libsvn_repos/delta.c,

subversion/libsvn_repos/deprecated.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/hooks.c,

subversion/libsvn_repos/log.c,

subversion/libsvn_repos/replay.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/repos.c,

subversion/libsvn_repos/rev_hunt.c,

subversion/libsvn_subr/auth.c,

subversion/libsvn_subr/cmdline.c,

subversion/libsvn_subr/compat.c,

subversion/libsvn_subr/config_auth.c,

subversion/libsvn_subr/config.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/dso.c,

subversion/libsvn_subr/hash.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/properties.c,

subversion/libsvn_subr/simple_providers.c,

subversion/libsvn_subr/sorts.c,

subversion/libsvn_subr/ssl_client_cert_providers.c,

subversion/libsvn_subr/ssl_client_cert_pw_providers.c,

subversion/libsvn_subr/ssl_server_trust_providers.c,

subversion/libsvn_subr/subst.c,

subversion/libsvn_subr/types.c,

subversion/libsvn_subr/username_providers.c,

subversion/libsvn_subr/utf.c,

subversion/libsvn_subr/win32_crypto.c,

subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/diff_editor.c,

subversion/libsvn_wc/diff_local.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/externals.c,

subversion/libsvn_wc/info.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/node.c,

subversion/libsvn_wc/old-and-busted.c,

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/revert.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/translate.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/wc_db_update_move.c,

subversion/libsvn_wc/wc_db_wcroot.c,

subversion/libsvn_wc/workqueue.c,

subversion/mod_dav_svn/activity.c,

subversion/mod_dav_svn/deadprops.c,

subversion/mod_dav_svn/lock.c,

subversion/mod_dav_svn/merge.c,

subversion/mod_dav_svn/mod_dav_svn.c,

subversion/mod_dav_svn/reports/update.c,

subversion/mod_dav_svn/repos.c,

subversion/mod_dav_svn/version.c,

subversion/svnadmin/svnadmin.c,

subversion/svnauth/svnauth.c,

subversion/svn/cl-conflicts.c,

subversion/svn/commit-cmd.c,

subversion/svn/conflict-callbacks.c,

subversion/svn/diff-cmd.c,

subversion/svn/help-cmd.c,

subversion/svnlook/svnlook.c,

subversion/svnmucc/svnmucc.c,

subversion/svn/notify.c,

subversion/svn/propedit-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/props.c,

subversion/svnrdump/dump_editor.c,

subversion/svnrdump/svnrdump.c,

subversion/svnrdump/util.c,

subversion/svnserve/serve.c,

subversion/svn/status.c,

subversion/svn/status-cmd.c,

subversion/svn/svn.c,

subversion/svnsync/svnsync.c,

subversion/svnsync/sync.c,

subversion/svn/util.c,

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

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

subversion/tests/libsvn_subr/hashdump-test.c,

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

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

subversion/tests/libsvn_wc/conflict-data-test.c,

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

subversion/tests/libsvn_wc/wc-test.c,

subversion/tests/svn_test_fs.c,

tools/dev/fsfs-reorg.c,

tools/server-side/fsfs-stats.c): #include svn_private_config.h first

  1. … 180 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(filename_with_control_chars): Update synopsis of issue #4340 in comment.

Remove the '#ifdef SVN_FS_INFO' guards that hide the svn_fs_info* and

svn_repos_info* family of APIs. All these APIs were developed on trunk,

so their names are not repeated in this log message.

  1. … 6 more files in changeset.
Remove duplicate line.

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

(in_repo_groups_authz): Remove second setting of groups_url.

* **/**

Run tools/dev/remove-trailing-whitespace.sh to remove all trailing whitespace

before we branch 1.8, like we did before creating previous branches.

No functional changes.

  1. … 199 more files in changeset.
'svnadmin info': disable the public APIs for 1.8.x, by making them conditional

on an undefined preprocessor symbol.

* subversion/include/svn_fs.h

(svn_fs_info_format, svn_fs_info_config_files, svn_fs_info_t,

svn_fs_info, svn_fs_info_dup, SVN_FS_FSFS_INFO_SHARDED,

SVN_FS_FSFS_INFO_REP_CACHE_PATH, SVN_FS_FSFS_INFO_MIN_UNPACKED_REV):

As above.

* subversion/include/svn_repos.h

(svn_repos_capabilities, svn_repos_info_format):

As above.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_info_format, svn_fs_info_config_files, svn_fs_info, svn_fs_info_dup):

As above.

* subversion/libsvn_repos/repos.c

(svn_repos_capabilities, svn_repos_info_format): As above.

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

(test_fs_info_format): As above.

(test_funcs): As above.

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

(test_repos_info): As above.

(test_funcs): As above.

  1. … 5 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(test_path_authz): Catch unrecognised actions to avoid unitialised variable.

Redesign and implement "fetch repository info".

Introduce independent functions, replacing the info struct. Remove hooks

support for now; it could be added by reusing hooks.c:check_hook_cmd().

* subversion/include/svn_repos.h

(svn_repos_capabilities): Point to this function from the "if you add a new

capability" comment.

(svn_repos_info_format): New function.

(svn_repos_info, svn_repos_info_t, svn_repos_info_dup):

Delete declarations (which have never been implemented)..

* subversion/libsvn_repos/repos.c

(svn_repos_capabilities): Implement.

(svn_repos_info_format): Implement.

(svn_repos_info, svn_repos_info_t, svn_repos_info_dup):

Delete stub definitions.

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

(svn_hash.h, svn_version.h): Include.

(test_repos_info): New function.

(test_funcs): Run it.

* subversion/libsvn_repos/repos.h

(SVN_REPOS__FORMAT_NUMBER, SVN_REPOS__FORMAT_NUMBER_1_4):

Juggle macros a little to ensure that svn_repos_info_format() would trip

if we increment the format number without changing the "format number to

version number" logic therein.

  1. … 3 more files in changeset.
* subversion/tests/libsvn_repos/repos-test.c

(filename_with_control_chars): Use a repository named

"test-repo-..." rather than "test-repos-...", as that's our

convention, and that's what's matched in svn:ignores.

Remove the ability of svn_repos_authz_read2() to handle repos-relative URLs.

This cleans up a case where it was impossible to canonicalize the paths

being passed into it and also ends up removing the need to pass repos_root

into it. If callers want to support repos-relative URLs then they should

resolve them into absolute file URLs and canonicalize them prior to calling

svn_repos_authz_read2().

* subversion/include/svn_repos.h

(svn_repos_authz_read2): Remove repos_root argument and adjust documentation

to account for no longer accepting repos-root URLs. Also change "a file"

in the documented formats for path to a dirent to be more precise.

* subversion/libsvn_repos/authz.c

(authz_retrieve_config_repo, svn_repos__authz_read, svn_repos_authz_read2):

Remove repos_root parameter and support for repos-relative URLs in path.

* subversion/libsvn_repos/deprecated.c

(svn_repos_authz_read): Adjust call of svn_repos__authz_read().

* subversion/libsvn_repos/repos.h

(svn_repos_authz_read): Adjust declaration and documentation to match the

removal of repos_root and support for repos-relative URLs.

* subversion/mod_authz_svn/mod_authz_svn.c

(canonicalize_access_file): Adjust comment about why we are not canonicalizing

here.

(get_access_conf): When access_file is a repos-relative URL resolve and

canonicalize it before calling svn_repos_authz_read2().

* subversion/svnserve/serve.c

(canonicalize_access_file): Change access_file to an arginout and return

an svn_error_t so that we can resolve and canonicalize repos-relative

urls.

(load_authz_config): Adjust calls to canonicalize_access_file() due to

above changes.

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

(in_repo_authz, in_repo_groups_authz): Remove repos-relative URL tests

and convert still needed tests that were using repos-relative URls to

absolute URLs.

* tools/server-side/svnauthz.c

(get_authz): Fix call to svn_repos_authz_read2() to match above changes.

  1. … 7 more files in changeset.
Reject paths containing control characters at the repos layer.

Newly added paths are checked by the repos commit editor, and rejected

if they contain control characters.

Related to issue #4340.

* subversion/libsvn_repos/commit.c

(illegal_path_escape): New, copied from libsvn_subr/path.c.

Going forward, we could make this function public in libsvn_subr.

But a static copy in this file will make backports easier for now.

(check_cntrl): New, based on svn_path_check_valid().

(add_file_or_directory): Reject paths which contain control characters.

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

(filename_with_control_chars): New test.

(test_funcs): Add new test.

  1. … 1 more file in changeset.
Remove the test for issue #4340, "fs layer should reject filenames with

trailing \n", which changed its focus from the repos layer to the FS layer.

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

(filename_trailing_newline): Remove.

(test_funcs): Remove filename_trailing_newline test from this list.