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

Changeset 1450279 is being indexed.

Rev the standard libsvn_client api used for opening ra sessions, to allow

access to the libsvn_wc pristine store in many more cases. This allows serf

to obtain texts from the local working copy in many cases where it first


For just this patch makes libsvn_ra_serf avoid more than 550

http requests.

* subversion/include/private/svn_client_private.h

(svn_client__ra_session_from_path2): Update documentation.

* subversion/include/svn_client.h

(svn_client_open_ra_session2): New function.

(svn_client_open_ra_session): Deprecate function.

* subversion/libsvn_client/add.c

(mkdir_urls): Update caller.

* subversion/libsvn_client/client.h

(svn_client__open_ra_session_internal): Change some arguments. Update

documentation. Add scratch_pool.

* subversion/libsvn_client/commit.c

(check_url_kind): Update caller.

* subversion/libsvn_client/copy.c

(repos_to_repos_copy): Update caller.

(wc_to_repos_copy): Use session pool to avoid opening two sessions at the

same time. Remove unneeded wait for timestamps, as we do a repository only

commit here.

(repos_to_wc_copy): Update caller.

* subversion/libsvn_client/delete.c

(delete_urls_multi_repos): Update caller.

* subversion/libsvn_client/deprecated.c

(svn_client_open_ra_session): New function.

(svn_client_uuid_from_url): Wrap svn_client_get_repos_root, but with a

subpool to avoid keeping ra sessions open in functions without dual pools.

(svn_client_root_url_from_path): Use session pool, as there is no result_pool.

* subversion/libsvn_client/diff.c


diff_repos_repos): Obtain wri_abspath and use it when opening ra



diff_summarize_repos_repos): Update caller.

* subversion/libsvn_client/import.c

(svn_client_import5): Update caller.

* subversion/libsvn_client/iprops.c

(get_inheritable_props): Update caller.

* subversion/libsvn_client/list.c

(svn_client__ra_stat_compatible): Update caller.

* subversion/libsvn_client/locking_commands.c


svn_client_unlock): Update caller.

* subversion/libsvn_client/merge.c

(ensure_ra_session_url): Pass wri_abspath to speed up merging.



do_automatic_merge_locked): Update caller.

* subversion/libsvn_client/mergeinfo.c

(svn_client__get_wc_or_repos_mergeinfo_catalog): Update caller.

* subversion/libsvn_client/prop_commands.c


svn_client_revprop_set2): Update caller.


svn_client_revprop_list): Update caller. Introduce subpool for function

without result_pool argument.

* subversion/libsvn_client/ra.c

(callback_baton_t): Add wcroot_abspath argument to make looking this up

from the ra call a hashtable lookup.

(get_wc_contents): Use wcroot_abspath.

(svn_client__open_ra_session_internal): Separate wri_abspath and base

abspath handling. Use scratch_pool where possible.

(svn_client_open_ra_session): Rename to ...

(svn_client_open_ra_session2): ... this and update caller.

(svn_client__ra_session_from_path2): Update caller.

(svn_client__repos_locations): Update caller.

(svn_client__get_youngest_common_ancestor): Update caller.

* subversion/libsvn_client/status.c


svn_client_status5): Update caller.

* subversion/libsvn_client/update.c

(update_internal): Update caller.

* subversion/libsvn_client/util.c

(svn_client_get_repos_root): Update caller.

  1. … 19 more files in changeset.
Move some 'svn ls' functions handling externals from externals.c to list.c,

as they aren't generally reusable anyway.

* subversion/libsvn_client/client.h

(svn_client__list_internal): Make static.

(svn_client__list_externals): Make static.

* subversion/libsvn_client/externals.c


svn_client__list_externals): Move to list.c

* subversion/libsvn_client/list.c

(includes): Add svn_wc_private.h.


list_internal): Add prototype.

(svn_client__list_internal): Rename to ...

(list_internal): ... this and add documentation from .h. Update caller.

(wrap_list_error): New function, based on externals helper.

(list_external_items): New function. Copied from svn_client__list_externals.

Update caller.

(svn_client_list3): Update caller.

  1. … 2 more files in changeset.
Fix issue #4225, "Add '--include-externals' option to svn list".

* subversion/include/svn_client.h

(svn_client_list_func2_t): New type used to notify externals information.

(svn_client_list_func_t): Deprecate type.

(svn_client_list3): New function, which has a new argument


(svn_client_list2): Deprecate it.

* subversion/libsvn_client/client.h

(svn_client__list_internal): New function.

(svn_client__list_externals): New function.

* subversion/libsvn_client/deprecated.c

(list_func_wrapper_baton): New struct to deprecate svn_client_list2().

(list_func_wrapper, wrap_list_func): Helper functions to deprecate


(svn_client_list2): Call svn_client_list3 with include_externals set to

FALSE, and use svn_client_list_func2_t as callback implemented by


* subversion/libsvn_client/externals.c

(list_external_items): New static function that walks through all the

externals under list target recursively and list them using


(svn_client__list_externals): New function to parse externals description

and list it using list_external_items().

* subversion/libsvn_client/list.c

(get_dir_contents): Populate the hash table 'externals'. Use

svn_client_list_func2_t instead of svn_client_list_func_t to report file

and directory entries. Use external_parent_url and external_target when

external items are being listed.

(svn_client__list_internal): New function. Same as svn_client_list3(), it

accepts few additional parameters that carries external information.

If include_externals is set, process all the externals which are populated

by get_dir_contents() using svn_client__list_externals().

(svn_client_list3): New function, thin wrapper around


* subversion/svn/list-cmd.c

(print_baton): Add few structure members to keep track of last seen external


(print_dirent): Implement svn_client_list_func2_t to control the output when

used with externals.

(print_dirent_xml): Implement svn_client_list_func2_t. Enclose the external

items in the element <external parent_url=.. target= ..><..></external>

(svn_cl__list): Call svn_client_list3(). Handle if there are any errors

during externals processing.

* subversion/svn/main.c

(svn_cl__cmd_table): Enable include_externals for 'list' and give a short

description about the option.

* subversion/tests/cmdline/

(include_externals): Rename it to 'commit_include_externals'.

(list_include_externals): New test.

(test_list): Add a reference to the new test. Rename 'include_externals' to


Patch by: Vijayaguru G <vijay{_AT_}>

Review by: stsp


  1. … 7 more files in changeset.
* subversion/libsvn_client/list.c

(svn_client__ra_stat_compatible): Avoid theoretical null reference, when the

ra session root disappeared during the call to this function.

* subversion/libsvn_client/list.c

(svn_client__ra_stat_compatible): Avoid unneeded work in the common case

where the ra layer supports svn_ra_stat(). Rename some variables.

Use a single copy of a duplicated static function. This makes 'svn info'

report some otherwise unavailable values (such as last author, etc.)

when used against a pre 1.2 svnserve repository root.

* subversion/libsvn_client/client.h

(svn_client__ra_stat_compatible): New prototype.

* subversion/libsvn_client/info.c

(ra_stat_compatible): Remove function.

(svn_client_info3): Update caller. Remove pre-1.2 handling as we can now get

everything we need.

* subversion/libsvn_client/list.c

(ra_stat_compatible): Rename to ...

(svn_client__ra_stat_compatible): ... this and make library public.

Use subpool for temp ra session.

(svn_client_list2): Update caller.

  1. … 2 more files in changeset.
Convert the remaining callers of svn_client__ra_session_from_path() to use

svn_client__ra_session_from_path2(), which returns the resolved location as

a path-rev structure. Remove svn_client__ra_session_from_path().

The revving of the function name was only useful for the period over which

this conversion took place, and the "2" suffix can be dropped from the new

function's name after this commit.

* subversion/libsvn_client/client.h,


(svn_client__ra_session_from_path): Delete.

* subversion/libsvn_client/blame.c

(svn_client_blame5): Use svn_client__ra_session_from_path2() instead.

* subversion/libsvn_client/cat.c

(svn_client_cat2): Same.

* subversion/libsvn_client/export.c

(svn_client_export5): Same.

* subversion/libsvn_client/list.c

(svn_client_list2): Same.

* subversion/libsvn_client/log.c

(svn_client__get_copy_source, svn_client_log5): Same.

* subversion/libsvn_client/mergeinfo.c

(get_mergeinfo): Same.

* subversion/libsvn_client/prop_commands.c

(svn_client_propget4, svn_client_proplist3): Same.

  1. … 8 more files in changeset.
Simplify use of svn_client__path_relative_to_root().

[I missed ra_loader.c in this commit, and committed it in r1199164.]

* subversion/include/private/svn_ra_private.h,


(svn_ra__get_fspath_relative_to_root): New function.

* subversion/libsvn_client/client.h

(svn_client__path_relative_to_root): Document that the repos root input is

not required for resolving a WC path, as this seems to have been the

case since r1091786.

* subversion/libsvn_client/list.c

(svn_client_list2): Use svn_ra__get_fspath_relative_to_root instead.

* subversion/libsvn_client/merge.c

(fix_deleted_subtree_ranges, do_file_merge, do_directory_merge): Same.

(calculate_remaining_ranges, calculate_left_hand_side): Same, and remove

unused repos-root input.

(populate_remaining_ranges): Remove unused repos-root input.

(get_mergeinfo_paths): Remove already-unused repos-root input.

(merge_reintegrate_locked): Don't pass a repos root: it's not needed.

* subversion/libsvn_client/mergeinfo.c

(svn_client__get_wc_mergeinfo_catalog): Don't pass a repos root: it's not


  1. … 4 more files in changeset.
Simplify some sorted-hash iteration code.

* subversion/libsvn_client/list.c

(get_dir_contents): Read the item's value from the iterator instead of

looking it up in the hash table.

* subversion/libsvn_ra/compat.c

(prev_log_path): Same.

* subversion/svn/log-cmd.c

(log_entry_receiver): Same.

  1. … 2 more files in changeset.
Hoist out two rather similar chunks of compatibility code in two different

places. This is a move towards combining them.

* subversion/libsvn_client/info.c

(ra_stat_compatible): New function, factored out of ...

(svn_client_info3): ... here.

* subversion/libsvn_client/list.c

(ra_stat_compatible): New function, factored out of ...

(svn_client_list2): ... here.

  1. … 1 more file in changeset.
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, <>.

* 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.
Improve an error message.

* subversion/libsvn_client/list.c

(svn_client_list2): Specify in which revision a missing URL is missing.

Reintegrate the 'uris-as-urls' branch into trunk.

(Merged /subversion/branches/uris-as-urls:r1060426-1064427.)

This should wrap up issue #2028.

  1. … 73 more files in changeset.
* subversion/include/svn_dirent_uri.h

Move all svn_fspath__* function prototypes out of here, and...

* subversion/include/private/svn_fspath.h

...into here, a new private header file for those functions.

* subversion/libsvn_client/list.c,

* subversion/libsvn_client/merge.c,

* subversion/libsvn_client/mergeinfo.c,

* subversion/libsvn_delta/path_driver.c,

* subversion/libsvn_fs_base/dag.c,

* subversion/libsvn_fs_base/tree.c,

* subversion/libsvn_fs_fs/dag.c,

* subversion/libsvn_fs_fs/lock.c,

* subversion/libsvn_fs_fs/tree.c,

* subversion/libsvn_ra_local/ra_plugin.c,

* subversion/libsvn_repos/reporter.c,

* subversion/libsvn_subr/dirent_uri.c,

* subversion/libsvn_subr/mergeinfo.c,

* subversion/libsvn_wc/status.c,

* subversion/svnlook/main.c,

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

Now include "private/svn_fspath.h"

  1. … 17 more files in changeset.
Use the svn_fspath__* API instead of svn_uri_* for FS paths. Tested with

and without FSPATH_USE_URI defined.

* subversion/libsvn_client/list.c

(get_dir_contents): s/svn_uri_/svn_fspath__/ where appropriate.

* subversion/libsvn_client/merge.c

(get_inoperative_immediate_children, record_mergeinfo_for_dir_merge,

log_noop_revs, log_find_operative_revs): Same.

* subversion/libsvn_client/mergeinfo.c


filter_log_entry_with_rangelist): Same.

* subversion/libsvn_fs_base/dag.c

(make_entry, svn_fs_base__dag_clone_child, svn_fs_base__dag_copy): Same.

* subversion/libsvn_fs_base/tree.c

(parent_path_path, open_path, deltify_mutable, merge, verify_locks,

txn_body_history_prev, prev_location,

txn_body_get_mergeinfo_data_and_entries, crawl_directory_for_mergeinfo,

append_to_merged_froms): Same.

* subversion/libsvn_fs_fs/dag.c

(make_entry, svn_fs_fs__dag_clone_child, svn_fs_fs__dag_copy): Same.

* subversion/libsvn_fs_fs/lock.c

(get_locks_filter_func): Same.

* subversion/libsvn_fs_fs/tree.c

(parent_path_path, open_path, prev_location, history_prev,

crawl_directory_dag_for_mergeinfo, append_to_merged_froms): Same.

* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__do_check_path): Same.

* subversion/libsvn_repos/reporter.c

(fake_dirent): Same.

* subversion/libsvn_subr/mergeinfo.c

(svn_mergeinfo__remove_prefix_from_catalog): Same.

* subversion/libsvn_wc/status.c

(send_status_structure, close_file): Same.

* subversion/svnlook/main.c

(print_tree): Same.

  1. … 12 more files in changeset.
For issue #3709 ("Inconsistency between "svn list" and "svn

checkout"), ignore authz errors raised when recursing.

* subversion/libsvn_client/list.c

(get_dir_contents): Catch and ignore SVN_ERR_RA_NOT_AUTHORIZED and

SVN_ERR_RA_DAV_FORBIDDEN errors returned from the server.

Reintegrate the issue-2779-dev branch. Permanent redirect responses

from an HTTP server now cause the client -- in particular

circumstances -- to automatically follow the redirect.

NOTE: The test suite changes brought in by this merge require

modifications to developers' httpd.conf files. So if you see the all failing, make sure you've updated your Apache

configuration per the instructions in the

subversion/tests/cmdline/README file.

  1. … 44 more files in changeset.
Switch the argument order of (the new in 1.7) svn_dirent_split(),

svn_uri_split() and svn_relpath_split() functions to our new standard

order: output arguments before input arguments.

* subversion/include/svn_dirent_uri.h

(svn_dirent_split, svn_relpath_split, svn_uri_split): Reorder arguments.

* subversion/libsvn_client/add.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/delete.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/info.c

* subversion/libsvn_client/list.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/path_driver.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_wc/adm_crawler.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/copy.c

* subversion/libsvn_wc/diff.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/lock.c

* subversion/libsvn_wc/merge.c

* subversion/libsvn_wc/node.c

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

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db_pdh.c

* subversion/mod_dav_svn/repos.c

* subversion/svn/util.c

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

(*): Update callers.

  1. … 29 more files in changeset.
Finish issue #3661: RA get-locks inefficiencies.

Add depth support to the process of querying repository locks in the

repository and RA layers for the sake of performance. Prior to this

change, 'svn ls -v SOME_PATH' (non-recursive) asked the repository for

the locks on all paths in and under SOME_PATH (fully recursive),

resulting in potentially far more information being transmitted across

the network than is necessary.

* subversion/include/svn_fs.h

(svn_fs_get_locks2): New.

(svn_fs_get_locks): Deprecate this.

* subversion/libsvn_fs/fs-loader.h

(fs_vtable_t): Add 'depth' to get_locks() vtable function.

* subversion/libsvn_fs/fs-loader.c

(svn_fs_get_locks2): New.

(svn_fs_get_locks): Make this just a wrapper around svn_fs_get_locks2().

* subversion/libsvn_fs_base/lock.h

(svn_fs_base__get_locks): Add 'depth' parameter.

* subversion/libsvn_fs_base/lock.c

(struct locks_get_args): Add 'depth' member.

(svn_fs_base__allow_locked_operation, txn_body_get_locks): Update

call to svn_fs_bdb__locks_get().

(svn_fs_base__get_locks): Add 'depth' parameter, used to populate

new baton member.

* subversion/libsvn_fs_base/bdb/locks-table.h

(svn_fs_bdb__locks_get): Add 'depth' parameter.

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

(svn_fs_bdb__locks_get): Add 'depth' parameter, and use it to filter

the reported depths.

* subversion/libsvn_fs_fs/lock.h

(svn_fs_fs__get_locks): Add 'depth' paramater.

* subversion/libsvn_fs_fs/lock.c

(get_locks_filter_baton_t): New baton structure.

(get_locks_filter_func): New callback wrapper function.

(svn_fs_fs__get_locks): Add 'depth' paramater, and employ the

get_locks_filter_func and baton when calling walk_digest_files().

* subversion/include/svn_repos.h

(svn_repos_fs_get_locks2): New revision of svn_repos_fs_get_locks()

which adds support for a specified 'depth'.

(svn_repos_fs_get_locks): Deprecate this.

* subversion/libsvn_repos/fs-wrap.c

(svn_repos_fs_get_locks2): Was svn_repos_fs_get_locks(). Now calls


(svn_repos_fs_get_locks): Make this just a wrapper around

svn_repos_fs_get_locks2(), now.

* subversion/mod_dav_svn/reports/get-locks.c

(dav_svn__get_locks_report): Look for new (optional) depth

parameter, and use it to drive what's now a call to


* build.conf

(svnserve): Add dependency on libsvn_ra.

* subversion/svnserve/serve.c

(get_locks): Look for optional depth in the get-locks request, and

use it in what is now a call to svn_repos_fs_get_locks2().

* subversion/include/svn_ra.h

(svn_ra_get_locks2): New flavor of svn_ra_get_lock(), this time with

depth support.

(svn_ra_get_lock): Deprecate.

* subversion/libsvn_ra/ra_loader.h

(svn_ra__vtable_t): Add 'depth' parameter to 'get_locks' function.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_get_locks2): New.

(svn_ra_get_locks): Make this just a wrapper around


* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__get_locks): Add 'depth' parameter, and now use


* subversion/libsvn_ra_neon/ra_neon.h

(svn_ra_neon__get_locks): Add 'depth' parameter.

* subversion/libsvn_ra_neon/get_locks.c

(get_locks_baton_t): Add 'path' and 'requested_depth' members.

(getlocks_end_element): Filter unwanted locks out of the hash.

(svn_ra_neon__get_locks): Add 'depth' parameter, embed it into the

get-locks request, and populate the new baton members.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__get_locks): Add 'depth' parameter.

* subversion/libsvn_ra_serf/getlocks.c

(lock_context_t): Add 'path' and 'requested_depth' members.

(end_getlocks): Filter unwanted locks out of the hash.

(create_getlocks_body): Stuff depth value from baton into the

request body.

(svn_ra_serf__get_locks): Add 'depth' parameter,

* subversion/libsvn_ra_svn/client.c

(ra_svn_get_locks): Add 'depth' parameter, and pass it to the server

in case the server can make use of it. Also, filter out unwanted

locks (returned by servers that *can't* make use of it).

* subversion/libsvn_client/list.c

(svn_client_list2): Now use svn_ra_get_locks2(), passing depth along.

  1. … 23 more files in changeset.
Test out my new and fancy ASF commit priviledges by changing the copyright

wording in our license headers to reflect ownership by the ASF.


Change terminology to ASF, and update a link.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the ASF, and update the project website.

* everywhere:

Change license text to reflect ASF ownership.

  1. … 891 more files in changeset.
Resolve some deprecation warnings.

* subversion/libsvn_client/list.c

(get_dir_contents): Use `svn_relpath_join()' and `svn_uri_join()'.

Patch by: Kannan R <kannanr{_AT_}>

* subversion/libsvn_client/client.h

(svn_client__open_ra_session_internal): Remove access baton parameter,

and update docs.

* subversion/libsvn_client/ra.c

(svn_client__open_ra_session_internal): Remove the now-unused access baton


* subversion/libsvn_client/relocate.c,

















Update callers throughout by removing the access baton parameter.

  1. … 17 more files in changeset.
Replace a single svn_wc__entry_versioned() call with

svn_wc__get_entry_versioned(),greatly simplify a couple of other functions

dependent on the first one, and update all their callers to stop passing

access batons around.

* subversion/libsvn_client/util.c

(wc_path_to_repos_url): Directly fetch an entry, instead of possibly opening

up an access baton to do it.

(svn_client__path_relative_to_root, svn_client_get_repos_root):

Don't use an access baton to call the above function, and greatly simplify

these functions by not worrying about cleaning up the access baton.

Also, add scratch_pools.

* subversion/libsvn_client/client.h

(svn_client__path_relative_to_root, svn_client_get_repos_root):

Update params and docstrings.

* subversion/libsvn_client/externals.c,







Update various callers of svn_client__path_relative_to_root() and


  1. … 8 more files in changeset.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.



subversion/LICENSE: Remove.

* subversion/libsvn_subr/opt.c

(svn_opt__print_version_info): Note that the product as a whole is

copyrighted by the SVN Corp, and that it contains contributions from

many people, as referenced in NOTICE.

* subversion/bindings/swig/python/LICENSE_FOR_PYTHON_BINDINGS:

Relicense the SVN parts under Apache 2.0.

* everywhere:

Change copyright notices in file headers to reflect the Apache 2.0 license.

  1. … 882 more files in changeset.
A little diversion: Wrap some directly returned errors in libsvn_client.

* subversion/libsvn_client/deprecated.c,























Apply generous use of svn_error_return().

  1. … 22 more files in changeset.
Some more annoying deprecated API removal.

* subversion/libsvn_client/locking_commands.c


* subversion/libsvn_client/list.c


Switch from svn_path_* APIs to svn_{dirent,uri}_* APIs.

  1. … 1 more file in changeset.
Adjust a bunch of our public header files:

- make sure everything the header needs is included

- make sure nothing is included which is NOT needed

Added an exception to svn_types.h: it now explicitly includes svn_error.h

since Everybody needs that thing. We go ahead and make it easy for them,

even though that is counter-philosophy.

After altering the header files, some .c files in our codebase would not

compile -- they used stuff that they did not explicitly include. Thus, a

goodly number of .c files were updated, too.

* subversion/libsvn_ra/wrapper_template.h:

* subversion/libsvn_ra/deprecated.c:

* subversion/libsvn_ra/compat.c:

* subversion/libsvn_subr/iter.c:

* subversion/libsvn_subr/cmdline.c:

* subversion/libsvn_subr/ssl_client_cert_pw_providers.c:

* subversion/libsvn_subr/error.c:

* subversion/libsvn_subr/auth.c:

* subversion/libsvn_subr/opt.c:

* subversion/libsvn_subr/checksum.c:

* subversion/libsvn_subr/compat.c:

* subversion/libsvn_subr/sha1.c:

* subversion/libsvn_subr/deprecated.c:

* subversion/libsvn_subr/ssl_server_trust_providers.c:

* subversion/mod_dav_svn/activity.c:

* subversion/mod_dav_svn/reports/log.c:

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

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

* subversion/svn/list-cmd.c:

* subversion/svn/changelist-cmd.c:

* subversion/svn/log-cmd.c:

* subversion/svn/conflict-callbacks.c:

* subversion/libsvn_fs_base/dag.c:

* subversion/libsvn_fs_base/util/fs_skels.c:

* subversion/include/svn_dirent_uri.h:

* subversion/include/svn_error_codes.h:

* subversion/include/svn_fs.h:

* subversion/include/svn_diff.h:

* subversion/include/svn_sorts.h:

* subversion/include/svn_mergeinfo.h:

* subversion/include/svn_base64.h:

* subversion/include/svn_dso.h:

* subversion/include/svn_ra_svn.h:

* subversion/include/svn_repos.h:

* subversion/include/svn_delta.h:

* subversion/include/svn_path.h:

* subversion/include/svn_subst.h:

* subversion/include/svn_xml.h:

* subversion/include/svn_props.h:

* subversion/include/svn_iter.h:

* subversion/include/svn_types.h:

* subversion/include/svn_config.h:

* subversion/include/svn_string.h:

* subversion/include/svn_io.h:

* subversion/include/svn_wc.h:

* subversion/include/svn_cmdline.h:

* subversion/include/svn_client.h:

* subversion/include/svn_user.h:

* subversion/include/svn_hash.h:

* subversion/include/svn_md5.h:

* subversion/include/svn_error.h:

* subversion/include/svn_pools.h:

* subversion/include/private/svn_log.h:

* subversion/include/svn_time.h:

* subversion/include/svn_utf.h:

* subversion/include/svn_auth.h:

* subversion/include/svn_ra.h:

* subversion/include/svn_opt.h:

* subversion/include/svn_checksum.h:

* subversion/libsvn_wc/deprecated.c:

* subversion/libsvn_wc/util.c:

* subversion/libsvn_wc/merge.c:

* subversion/libsvn_wc/tree_conflicts.c:

* subversion/libsvn_client/list.c:

* subversion/libsvn_client/log.c:

* subversion/libsvn_ra_neon/util.c:

* subversion/libsvn_ra_neon/log.c:

* subversion/libsvn_repos/deprecated.c:

* subversion/libsvn_fs_fs/tree.c:

* subversion/libsvn_fs_fs/fs_fs.c:

(): adjust #include statements appropriately

  1. … 69 more files in changeset.
Remove false positive deprecation warnings from libsvn_client. We accomplish

this by creating deprecated.c, putting all deprecated function therein, and

declaring SVN_DEPRECATED at the top of the file to quash any warnings within


I plan on following this model for the rest of our libraries, in an effort

to remove extraneous warnings noise and also reduce post-1.6-branch merge


[Note: I moved stuff based upon the current compiler warnings. There may be

additional deprecated functions while don't currently cause warnings, in which

case I've missed those. We can move them over as we find them.]

* subversion/libsvn_client/deprecated.c:


* subversion/libsvn_client/delete.c,












Move deprecated symbols out, as needed.

  1. … 12 more files in changeset.
Rev the svn_ra_get_uuid and svn_ra_get_repos_root interfaces to get a

more natural API, where the pool you provide is actually meaningful

and the returned value is allocated in it as you might expect.

* subversion/include/svn_ra.h

(svn_ra_get_uuid2, svn_ra_get_repos_root2): New functions.

(svn_ra_get_uuid, svn_ra_get_repos_root): Update docstrings.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_get_uuid2, svn_ra_get_repos_root2): New functions.

(svn_ra_reparent): Use svn_ra_get_repos_root2() instead of


* subversion/libsvn_ra/compat.c,

* subversion/libsvn_client/relocate.c,

* subversion/libsvn_client/switch.c,

* subversion/libsvn_client/externals.c,

* subversion/libsvn_client/util.c,

* subversion/libsvn_client/export.c,

* subversion/libsvn_client/status.c,

* subversion/libsvn_client/info.c,

* subversion/libsvn_client/merge.c,

* subversion/libsvn_client/ra.c,

* subversion/libsvn_client/checkout.c,

* subversion/libsvn_client/copy.c,

* subversion/libsvn_client/list.c,

* subversion/libsvn_client/update.c,

* subversion/svnsync/main.c

Callers of svn_ra_get_uuid() and svn_ra_get_repos_root() changed to

call svn_ra_get_uuid2() and svn_ra_get_repos_root2(), respectively,

and now-unnecessary string dupes removed.

  1. … 16 more files in changeset.
Make svn_client__path_relative_to_root() able to return two different

flavors of output -- with and without leading slashes. Update callers

to (currently) always pass TRUE for this parameter.

* subversion/libsvn_client/client.h,

* subversion/libsvn_client/util.c

(svn_client__path_relative_to_root): Add 'include_leading_slash'

parameter, and code to honor it.

* subversion/libsvn_client/copy.c

(calculate_target_mergeinfo, wc_to_repos_copy): Update calls to


(propagate_mergeinfo_within_wc): Update call to

svn_client__path_relative_to_root(), passing repos->root, too.

(And remove a comment bemoaning the no-longer-accurate implication

that we can't do exactly this.)

* subversion/libsvn_client/list.c

(svn_client_list2): Update calls to svn_client__path_relative_to_root().

* subversion/libsvn_client/log.c

(svn_client__get_copy_source): Update calls to


* subversion/libsvn_client/merge.c

(filter_reflected_revisions, calculate_remaining_ranges,

record_mergeinfo_for_record_only_merge, do_single_file_merge,

discover_and_merge_children): Update calls to


* subversion/libsvn_client/mergeinfo.c

(svn_client_mergeinfo_get_merged): Update calls to


  1. … 6 more files in changeset.