Checkout Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Make the session an argument of svn_ra_serf__create_expat_handler.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/getdate.c

(svn_ra_serf__get_dated_revision): Update caller.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): Update caller.

* subversion/libsvn_ra_serf/get_lock.c

(svn_ra_serf__get_lock): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

(svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/lock.c

(svn_ra_serf__lock): Update caller.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__run_merge): Remove argument. Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update caller.

* subversion/libsvn_ra_serf/multistatus.c

(svn_ra_serf__setup_error_parsing): Update caller.

* subversion/libsvn_ra_serf/options.c

(create_options_req): Update caller.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__create_propfind_handler): Update caller.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__create_expat_handler): Add argument.

(svn_ra_serf__run_merge): Remove argument.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay,

svn_ra_serf__replay_range): Update caller.

* subversion/libsvn_ra_serf/update.c

(finish_report): Update caller.

* subversion/libsvn_ra_serf/xml.c

(svn_ra_serf__create_expat_handler): Set session and conn from new argument.

  1. … 19 more files in changeset.
In ra_serf: Stop passing around explicit session, session->conn[0] pairs in the

propfind/options handling where using anything other than the primary connection

doesn't really make sense.

This simplifies a lot of code, and allows further refactoring later on.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/commit.c

(get_version_url): Update caller.

(open_root): Update caller. Move a bit of code to the property handling.

(add_directory,

add_file,

svn_ra_serf__get_commit_editor): Update caller.

* subversion/libsvn_ra_serf/getdate.c

(svn_ra_serf__get_dated_revision): Update caller.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): Update caller.

* subversion/libsvn_ra_serf/get_file.c

(svn_ra_serf__get_file): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

(get_iprops_via_more_requests,

svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update caller.

* subversion/libsvn_ra_serf/options.c

(create_options_req): Update caller.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__deliver_props2): Rename to...

(svn_ra_serf__create_propfind_handler): ... this and remove conn argument.

Update caller.

(svn_ra_serf__wait_for_props): Remove function. Fold into two callers.

(svn_ra_serf__fetch_node_props): Update caller.

(retrieve_baseline_info,

v1_get_youngest_revnum,

svn_ra_serf__get_youngest_revnum,

get_baseline_info,

svn_ra_serf__get_stable_url): Use session instead of connection.

(svn_ra_serf__fetch_dav_prop): Update caller.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__deliver_props2): Rename to...

(svn_ra_serf__create_propfind_handler): ... this. Update arguments and docs.

(svn_ra_serf__fetch_node_props,

svn_ra_serf__fetch_dav_prop,

svn_ra_serf__v2_get_youngest_revnum,

svn_ra_serf__v1_get_activity_collection,

svn_ra_serf__discover_vcc,

svn_ra_serf__report_resource,

svn_ra_serf__get_relative_path,

svn_ra_serf__get_stable_url): Use just a session as argument.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay,

svn_ra_serf__replay_range): Update caller.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__reparent,

serf__rev_proplist,

svn_ra_serf__get_repos_root): Update caller.

* subversion/libsvn_ra_serf/stat.c

(fetch_path_props,

svn_ra_serf__get_dir): Update caller.

* subversion/libsvn_ra_serf/update.c

(fetch_for_file): Update caller.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__discover_vcc,

svn_ra_serf__get_relative_path,

svn_ra_serf__report_resource): Update argument handling.

  1. … 18 more files in changeset.
Resolve an old ra_serf TODO: Add scratch_pool arguments to

svn_ra_serf__request_body_delegate_t and

svn_ra_serf__request_header_delegate_t.

No functional changes.

* subversion/libsvn_ra_serf/blame.c

(create_file_revs_body): Add argument.

* subversion/libsvn_ra_serf/commit.c

(create_checkout_body,

setup_proppatch_headers): Add argument.

(create_proppatch_body): Add argument. Set scratch pool to pool :(

(create_put_body,

create_empty_put_body,

setup_put_headers,

setup_copy_file_headers,

setup_add_dir_common_headers,

setup_copy_dir_headers,

setup_delete_headers,

create_txn_post_body,

setup_post_headers): Add argument.

* subversion/libsvn_ra_serf/getdate.c

(create_getdate_body): Add argument.

* subversion/libsvn_ra_serf/getlocations.c

(create_get_locations_body): Add argument.

* subversion/libsvn_ra_serf/getlocationsegments.c

(create_gls_body): Add argument.

* subversion/libsvn_ra_serf/getlocks.c

(create_getlocks_body): Add argument.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(create_getdrev_body): Add argument.

* subversion/libsvn_ra_serf/get_file.c

(headers_fetch): Add argument.

* subversion/libsvn_ra_serf/get_lock.c

(create_getlock_body,

setup_getlock_headers): Add argument.

* subversion/libsvn_ra_serf/inherited_props.c

(create_iprops_body): Add argument.

* subversion/libsvn_ra_serf/lock.c

(set_lock_headers,

create_lock_body,

set_unlock_headers): Add argument.

* subversion/libsvn_ra_serf/log.c

(create_log_body): Add argument.

* subversion/libsvn_ra_serf/merge.c

(setup_merge_headers,

create_merge_body): Add argument.

* subversion/libsvn_ra_serf/mergeinfo.c

(create_mergeinfo_body): Add argument.

* subversion/libsvn_ra_serf/options.c

(create_options_body,

create_simple_options_body): Add argument.

* subversion/libsvn_ra_serf/property.c

(setup_propfind_headers,

create_propfind_body): Add argument.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__request_body_delegate_t,

svn_ra_serf__request_header_delegate_t): Add argument. Remove old TODO.

* subversion/libsvn_ra_serf/replay.c

(create_replay_body): Add argument.

* subversion/libsvn_ra_serf/update.c

(headers_fetch,

create_update_report_body,

setup_update_report_headers): Add argument.

* subversion/libsvn_ra_serf/util.c

(setup_request): Update caller.

  1. … 19 more files in changeset.
* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Improve error handling behavior by no longer

disabling the standard error handling, but handling the proper error

from older mod_dav_svn versions. This will make us properly attach

the server error to the error chain.

* subversion/libsvn_ra_serf/getlocks.c

(getlocks_closed): Don't put non-locks without a token in the result hash,

to match the behavior of the other ra layers (and ra neon).

Revert r1508225, which moved the include of svn_private_config.h before all

includes of our public headers. Public headers shouldn't depend on private

headers and all changes that required this are long reverted on trunk.

This patch excludes all conflicting cases.

* 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/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/lock.c

* subversion/libsvn_fs_fs/temp_serializer.c

* subversion/libsvn_fs_fs/tree.c

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/deprecated.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.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.c

* subversion/libsvn_subr/config_auth.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/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/update_editor.c

* subversion/libsvn_wc/upgrade.c

* subversion/libsvn_wc/wc_db_update_move.c

* subversion/libsvn_wc/wc_db_wcroot.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.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/svn/notify.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/props.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svnlook/svnlook.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.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/server-side/fsfs-stats.c

Move the svn_string_private.h include back to the original location.

  1. … 162 more files in changeset.
Consolidate http status and server error reporting in a new handler

callback to avoid leaking server errors (which causes an error leak)

and to simplify usage. This patch also removes the xml handling done

handler that was a workaround for this plumbing for a few specific

handlers.

This finally makes it possible to make progress towards converting

the update implementation to the transition based xml parser.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/getdate.c

(svn_ra_serf__get_dated_revision): Update caller.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): Update caller.

* subversion/libsvn_ra_serf/get_lock.c

(svn_ra_serf__get_lock): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

(svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/lock.c

(run_locks): Update caller. Handle server errors the new way.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__run_merge): Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update caller.

* subversion/libsvn_ra_serf/multistatus.c

(multistatus_opened): Document a bit of history.

(multistatus_closed): Update for baton changes.

(multistatus_done): Rename to...

(svn_ra_serf__server_error_create): ... this and update usage

pattern to avoid error leaks. Add some comments.

(svn_ra_serf__setup_error_parsing): Update caller.

(svn_ra_serf__handle_server_error): Handle eof for 207 responses.

* subversion/libsvn_ra_serf/options.c

(create_options_req): Update caller. Use standard error handling.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__deliver_props): Update caller.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__response_done_delegate_t): New type.

(svn_ra_serf__handler_t): Add done handler.

(svn_ra_serf__xml_done_t): Remove type.

(svn_ra_serf__xml_context_create): Remove argument.

(svn_ra_serf__server_error_t): Remove error and keep track of original

handler instead of just the status line to allow clearing server error.

(svn_ra_serf__server_error_create): New function.

* subversion/libsvn_ra_serf/replay.c

(replay_done): Convert from svn_ra_serf__xml_done_t to

svn_ra_serf__response_done_delegate_t.

(svn_ra_serf__replay): Update caller.

(svn_ra_serf__replay_range): Update caller.

* subversion/libsvn_ra_serf/update.c

(finish_report): Check server error when the response is done.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__context_run_one): Remove server error handling.

(handle_response): Remove unexpected status handling from here.

(handle_response_cb): Call done handler (when done).

(response_done): New function.

(svn_ra_serf__create_handler): Setup response_done as default done handler.

* subversion/libsvn_ra_serf/xml.c

(svn_ra_serf__xml_context_t): Remove done callback.

(svn_ra_serf__xml_context_done): Stop calling done callback.

(svn_ra_serf__xml_context_create): Remove done setup.

  1. … 19 more files in changeset.
Make more cases of http status processing in libsvn_ra_serf use the standard

errors reporting.

* subversion/libsvn_ra_serf/commit.c

(unexpected_status_error): Move function to util.c and rename.

(checkout_node): Update caller.

(proppatch_walker): Add error case to avoid compiler warning.

(proppatch_resource,

open_root,

delete_entry,

add_directory,

add_file,

close_file,

close_edit

abort_edit): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Explicitly handle results.

* subversion/libsvn_ra_serf/get_lock.c

(svn_ra_serf__get_lock): Explicitly handle results.

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__run_merge): Verify result locally instead of making the

single caller do that.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__run_merge): Remove output argument.

(svn_ra_serf__error_on_status): Extend documentation.

(svn_ra_serf__unexpected_status): New function.

* subversion/libsvn_ra_serf/update.c

(handle_fetch): Use standard unexpected result handling.

(finish_report): Eagerly handle http status.

* subversion/libsvn_ra_serf/util.c

(handle_response): Accidentally left a few SVN_DBG() calls. Fixed in r1553698

(svn_ra_serf__error_on_status): Tweak message.

(svn_ra_serf__unexpected_status): New function; mostly copied from commits.c.

  1. … 6 more files in changeset.
In libsvn_ra_serf: Delay the http status based failure creation until the

response is completely read. This allows reading further responses from the

same connection, which would fail before this patch. This finally allows

handling HTTP 404 errors like other http status failures.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Don't fail on 404 errors.

* subversion/libsvn_ra_serf/options.c

(create_options_req): Don't fail via status code as we probe for repositories

here.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__deliver_props): Allow unexpected status codes.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__deliver_props): Document status behavior.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay_range): Request default error behavior for propfind.

* subversion/libsvn_ra_serf/update.c

(fetch_file,

end_report): Request default error behavior.

* subversion/libsvn_ra_serf/util.c

(handle_server_error): Remove function.

(svn_ra_serf__handle_xml_parser): Remove 404 code.

(handle_response): Remove 404 specialization. Delay status based error

creation until the request is completed, like how we handle server

errors.

(handle_response_cb): Return APR_EOF when serf reported EOF for the request.

  1. … 6 more files in changeset.
Use SVN_VA_NULL instead of plain NULL in variable-arguments lists in all

remaining cases, as far as I can discover, following r1536307 (introducing

SVN_VA_NULL) and r1543394 (warning about missing or inappropriate sentinels for

some Subersion functions).

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

calls with variable argument lists.

  1. … 37 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.
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.
Extend the transition based xml parser in ra_serf with two features:

- explicit http status value checking

- an optional done callback

In multi-request operations as update and replay a success callback

is needed to mark a request as done, and to signal the context loop that

cleanup work is needed.

This commit adds the necessary plumbing to provide better error handling

and to support the conversion of the replay handling, which I will add as

separate patches.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/getdate.c

(svn_ra_serf__get_dated_revision): Update caller.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

(svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/locks.c

(locks_expected_status): New variable.

(svn_ra_serf__get_lock): Update caller. Expect status 207.

(svn_ra_serf__lock): Update caller.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__run_merge): Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update caller.

* subversion/libsvn_ra_serf/options.c

(create_options_req): Update caller.

* subversion/libsvn_ra_serf/property.c

(propfind_expected_status): New variable.

(svn_ra_serf__deliver_props): Update caller. Expect 207.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__xml_done_t): New type.

(svn_ra_serf__xml_context_create): Add done_cb argument.

(svn_ra_serf__create_expat_handler): Add expected status argument.

* subversion/libsvn_ra_serf/util.c

(expat_ctx_t): Add expected status.

(expat_response_handler): Handle expected status. Use slightly safer

check for parser failures.

(svn_ra_serf__create_expat_handler): Store expected_status.

* subversion/libsvn_ra_serf/xml.c

(svn_ra_serf__xml_context_t): Add callback.

(svn_ra_serf__xml_context_done): Call done callback if available.

(svn_ra_serf__xml_context_create): Store done callback.

  1. … 15 more files in changeset.
Use macro for the initial state in serf's transition based xml parser,

instead of just 0.

Suggested by: gstein

* subversion/libsvn_ra_serf/ra_serf.h

(XML_STATE_INITIAL): New macro.

(svn_ra_serf__xml_transition_t): Update documentation.

* subversion/libsvn_ra_serf/blame.c

(blame_state_e):

* subversion/libsvn_ra_serf/getdate.c

(date_state_e):

* subversion/libsvn_ra_serf/getlocations.c

(loc_state_e):

* subversion/libsvn_ra_serf/getlocationsegments.c

(locseg_state_e):

* subversion/libsvn_ra_serf/getlocks.c

(getlocks_state_e):

* subversion/libsvn_ra_serf/get_deleted_rev.c

(drev_state_e):

* subversion/libsvn_ra_serf/inherited_props.c

(iprops_state_e):

* subversion/libsvn_ra_serf/log.c

(log_state_e):

* subversion/libsvn_ra_serf/merge.c

(merge_state_e):

* subversion/libsvn_ra_serf/mergeinfo.c

(mergeinfo_state_e):

* subversion/libsvn_ra_serf/options.c

(options_state_e):

* subversion/libsvn_ra_serf/property.c

(prop_state_e):

* subversion/libsvn_ra_serf/update.c

(report_state_e):

* subversion/libsvn_ra_serf/xml.c

(svn_ra_serf__xml_cb_start): Replace usage 0 with XML_STATE_INITIAL.

Name enums when not already named.

  1. … 14 more files in changeset.
Improve http status checking in ra_serf, by providing a default error for

unexpected server error, unexpected client error and unexpected moved status

values instead of handling all of the unexpected values as SVN_NO_ERROR.

This turns the

[[

In file

'D:\Development\SVN\Releases\TortoiseSVN-1.8.0\ext\subversion\subversion\libsvn_client\ra.c'

line 647: assertion failed (peg_revnum != SVN_INVALID_REVNUM)

]]

into the http error that is causing this problem.

Something like:

[[

svn: E175002: DAV request failed: Content length required

]]

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update caller.

* subversion/libsvn_ra_serf/commit.c

(return_response_err): Update caller.

* subversion/libsvn_ra_serf/getdate.c

(svn_ra_serf__get_dated_revision): Add status check and verify result to

make sense.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update caller.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update caller.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update caller.

* subversion/libsvn_ra_serf/inherited_props.c

(svn_ra_serf__get_inherited_props): Update caller.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Update caller.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update caller. Don't drop detailed errors.

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__v2_get_youngest_revnum): Update caller. Verify if result

makes sense.

(svn_ra_serf__v1_get_activity_collection): Update caller.

(svn_ra_serf__exchange_capabilities): Update caller.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__wait_for_props): Update caller.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__error_on_status): Update argument to pass the entire status to

allow creating better messages for unknown errors.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay): Update caller.

(svn_ra_serf__replay_range): Update caller.

* subversion/libsvn_ra_serf/update.c

(handle_stream): Update caller.

(finish_report): Update caller.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__error_on_status): Extend arguments. Provide specialized error

for http status 411 and a generic error for all currently unexpected

errors.

  1. … 14 more files in changeset.
Use svn_hash_gets and svn_hash_sets.

* 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/commit.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/editor.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/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/fs_fs.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/ra_loader.c

* subversion/libsvn_ra_local/ra_plugin.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/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/mod_dav_svn/activity.c

* subversion/mod_dav_svn/lock.c

* subversion/mod_dav_svn/merge.c

* subversion/mod_dav_svn/reports/update.c

* subversion/mod_dav_svn/repos.c

* subversion/mod_dav_svn/version.c

* subversion/svn/cl-conflicts.c

* subversion/svn/commit-cmd.c

* subversion/svn/conflict-callbacks.c

* subversion/svn/help-cmd.c

* subversion/svn/propedit-cmd.c

* subversion/svn/propget-cmd.c

* subversion/svn/status-cmd.c

* subversion/svn/status.c

* subversion/svn/svn.c

* subversion/svn/util.c

* subversion/svnadmin/svnadmin.c

* subversion/svndumpfilter/svndumpfilter.c

* subversion/svnlook/svnlook.c

* subversion/svnmucc/svnmucc.c

* subversion/svnrdump/dump_editor.c

* subversion/svnrdump/load_editor.c

* subversion/svnrdump/svnrdump.c

* subversion/svnrdump/util.c

* subversion/svnserve/serve.c

* subversion/svnsync/svnsync.c

* subversion/svnsync/sync.c

  1. … 70 more files in changeset.
Following up on r1452792, handle http status codes in a few more code paths.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_lock): Use svn_ra_serf__error_on_status to handle

several http error codes, but not 404.

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__v2_get_youngest_revnum): Use svn_ra_serf__error_on_status.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__wait_for_props): Compose errors instead of cleaning one.

  1. … 2 more files in changeset.
Remove the CUSTOM_OPEN flag from the transition table, since the

opened callback is invoked for all transitions. Add the new (tbd)

callback to the xml_context_create() function.

No real functional change.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__xml_transition_t): remove CUSTOM_OPEN. not needed.

(svn_ra_serf__xml_context_create): add CDATA_CB callback

* subversion/libsvn_ra_serf/blame.c:

(blame_ttable): remove CUSTOM_OPEN flag. table still not used.

* subversion/libsvn_ra_serf/get_deleted_rev.c:

(getdrev_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_deleted_rev): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/getdate.c:

(date_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_dated_revision): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/getlocations.c:

(getloc_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_locations): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/getlocationsegments.c:

(gls_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_location_segments): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/getlocks.c:

(getlocks_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_locks): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/locks.c:

(locks_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_lock): add CDATA_CB to ctx creation

(svn_ra_serf__lock): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/log.c:

(log_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_log): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/merge.c:

(merge_ttable): remove CUSTOM_OPEN flag. table still not used.

* subversion/libsvn_ra_serf/mergeinfo.c:

(mergeinfo_ttable): remove CUSTOM_OPEN flag.

(svn_ra_serf__get_mergeinfo): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/options.c:

(options_ttable): remove CUSTOM_OPEN flag.

(create_options_req): add CDATA_CB to ctx creation

* subversion/libsvn_ra_serf/xml.c:

(svn_ra_serf__xml_context_create): add CDATA_CB param and store into

the context.

  1. … 12 more files in changeset.
Convert the get-locks report over to v2 xml processing.

This also tweaks the "note" feature to store a note on a parent state,

rather than "this" state.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__xml_note): add a state parameter and document

* subversion/libsvn_ra_serf/xml.c:

(svn_ra_serf__xml_note): new implementation, with new param

* subversion/libsvn_ra_serf/getlocks.c:

(lock_state_e): remove typedef/enum name. rename NONE to INITIAL.

(lock_info_t): removed; obsolete.

(lock_context_t): remove DONE element

(push_state, start_getlocks, end_getlocks, cdata_getlocks): removed.

obsolete.

(getlocks_ttable): new transition table

(getlocks_closed): new callback to process the response

(svn_ra_serf__get_locks): switch to new xml parsing. use run_one().

  1. … 2 more files in changeset.
Yup... we *do* need the HANDLER_POOL to always be set. When the base

response handler detects an error, then it may start multistatus

processing to parse out an svn_error reported by the server. The

server_error located in the handler needs to be allocated from the

HANDLER_POOL.

* subversion/libsvn_ra_serf/util.c:

(svn_ra_esrf__handle_server_error): remove stale comment

(handle_response): add explanatory comment

(svn_ra_serf__request_create): assert we have the pool. all requests

start here, so we should be safe.

* subversion/libsvn_ra_serf/replay.c:

(svn_ra_serf__replay, svn_ra_serf__replay_range): initialize HANDLER_POOL

* subversion/libsvn_ra_serf/getlocks.c:

(svn_ra_serf__get_locks): initialize HANDLER_POOL

* subversion/libsvn_ra_serf/locks.c:

(svn_ra_serf__lock): initialize HANDLER_POOL

* subversion/libsvn_ra_serf/getdate.c:

(svn_ra_serf__get_dated_revision): initialize HANDLER_POOL

* subversion/libsvn_ra_serf/update.c:

(fetch_file, finish_report, svn_ra_serf__get_file): initialize

HANDLER_POOL

  1. … 5 more files in changeset.
Leave markers where we have not set HANDLER_POOL. We may want to make

it mandatory in the future.

* subversion/libsvn_ra_serf/replay.c:

* subversion/libsvn_ra_serf/getlocks.c:

* subversion/libsvn_ra_serf/getdate.c:

* subversion/libsvn_ra_serf/locks.c:

* subversion/libsvn_ra_serf/update.c:

(...): leave markers where we do not initialize HANDLER_POOL

  1. … 4 more files in changeset.
Switch many request handlers to use HANDLER->SLINE.CODE rather than

the STATUS_CODE produced by the XML parsing (which was the wrong level

of abstraction).

Some handlers just don't use the status code, so it was removed. Those

that need it fill in a HANDLER_POOL to get the correct data from the

response header.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__handler_t): clarify that HANDLER_POOL must be non-NULL

to get SLINE and LOCATION filled in.

* subversion/libsvn_ra_serf/getlocationsegments.c:

(gls_context_t): remove STATUS_CODE

(svn_ra_serf__get_location_segments): switch to SLINE.CODE

* subversion/libsvn_ra_serf/blame.c:

(svn_ra_serf__get_file_revs): switch to SLINE.CODE

* subversion/libsvn_ra_serf/log.c:

(log_context_t): remove STATUS_CODE

(svn_ra_serf__get_log): switch to SLINE.CODE

* subversion/libsvn_ra_serf/get_deleted_rev.c:

(svn_ra_serf__get_deleted_rev): switch to SLINE.CODE

* subversion/libsvn_ra_serf/getlocations.c:

(loc_context_t): remove STATUS_CODE

(svn_ra_serf__get_locations): switch to SLINE.CODE

* subversion/libsvn_ra_serf/locks.c:

(handle_lock): leave a todo for switch to HANDLER->SLINE

(svn_ra_serf__get_lock): switch to SLINE.CODE

* subversion/libsvn_ra_serf/update.c:

(finish_report): remove unused STATUS_CODE handling

* subversion/libsvn_ra_serf/replay.c:

(svn_ra_serf__replya): remove unused STATUS_CODE handling

* subversion/libsvn_ra_serf/mergeinfo.c:

(svn_ra_serf__get_mergeinfo): remove unused STATUS_CODE handling

* subversion/libsvn_ra_serf/getlocks.c:

(svn_ra_serf__get_locks): remove unused STATUS_CODE handling

* subversion/libsvn_ra_serf/getdate.c:

(svn_ra_serf__get_dated_revision): remove unused STATUS_CODE handling

* subversion/libsvn_ra_serf/util.c:

(svn_ra_serf__handle_xml_parser): use #if to remove an assertion.

further work to switch to HANDLER->SLINE.

  1. … 12 more files in changeset.
Adjust parameters to the serf-xml callback functions: remove the

userData param (in favor of parser->user_data), and add scratch_pool.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__xml_start_element_t, svn_ra_serf__xml_end_element_t,

svn_ra_serf__xml_cdata_chunk_handler_t): adjust params

* subversion/libsvn_ra_serf/util.c:

(start_error, end_error, cdata_error, start_207, end_207,

cdata_207): adjust parameters

(start_xml, end_xml, cdata_xml): use state->pool (for now) as a

scratch_pool. adjust params to the callback

* subversion/libsvn_ra_serf/merge.c:

* subversion/libsvn_ra_serf/getlocks.c:

* subversion/libsvn_ra_serf/mergeinfo.c:

* subversion/libsvn_ra_serf/locks.c:

* subversion/libsvn_ra_serf/getdate.c:

* subversion/libsvn_ra_serf/getlocationsegments.c:

* subversion/libsvn_ra_serf/blame.c:

* subversion/libsvn_ra_serf/log.c:

* subversion/libsvn_ra_serf/get_deleted_rev.c:

* subversion/libsvn_ra_serf/update.c:

* subversion/libsvn_ra_serf/property.c:

* subversion/libsvn_ra_serf/options.c:

* subversion/libsvn_ra_serf/getlocations.c:

* subversion/libsvn_ra_serf/replay.c:

(start_*, end_*, cdata_*): adjust parameters for new signature

  1. … 15 more files in changeset.
More work at removing __expand_string() in favor of stringbufs.

* subversion/libsvn_ra_serf/merge.c:

(merge_info_t): switch to a stringbuf

(push_state): create an empty stringbuf

(start_merge): reset the stringbuf to empty. for "href" and

"checked-in", there is no need to copy the name.

(end_merge): grab the value from the stringbuf

(cdata_merge): append the cdata to the stringbuf

* subversion/libsvn_ra_serf/locks.c:

(lock_prop_info_t): removed. we'll just use a stringbuf.

(push_state): return a stringbuf, rather than a lock_prop_info_t.

create and store the stringbuf in the state.

(end_lock): grab the value from the stringbuf

(cdata_lock): append the content to the stringbuf

* subversion/libsvn_ra_serf/getlocks.c:

(lock_info_t): store the incoming cdata into a stringbuf

(push_state): initialize the stringbuf

(end_getlocks): get the values from the stringbuf

(cdata_getlocks): append the content to the stringbuf

* subversion/libsvn_ra_serf/log.c:

(log_info_t): store the cdata into a stringbuf

(push_state): initialize the stringbuf

(start_log): ignore the push_state() return value in some cases

(maybe_decode_log_cdata): get the value from the stringbuf

(end_log): use the stringbuf value, and reset it to empty

(cdata_log): append the content to the stringbuf

* subversion/libsvn_ra_serf/replay.c:

(prop_info_t): store the cdata into a stringbuf

(push_state): initialize the stringbuf

(end_replay): fetch the value from the stringbuf

(cdata_replay): append the content to the stringbuf

  1. … 4 more files in changeset.
* subversion/libsvn_ra_serf/getlocks.c:

(push_state): remove stray assignment

Unbreak the build on C89 platforms.

* subversion/svn/main.c,

subversion/include/svn_wc.h,

subversion/libsvn_ra_serf/merge.c,

subversion/libsvn_ra_serf/locks.c,

subversion/libsvn_ra_serf/getlocks.c,

subversion/libsvn_ra_serf/getdate.c,

subversion/libsvn_ra_serf/blame.c,

subversion/libsvn_ra_serf/log.c,

subversion/libsvn_ra_serf/get_deleted_rev.c,

subversion/libsvn_ra_serf/update.c,

subversion/libsvn_ra_serf/property.c,

subversion/libsvn_ra_serf/options.c,

subversion/libsvn_ra_serf/getlocations.c,

subversion/libsvn_ra_serf/replay.c,

subversion/svnsync/main.c,

subversion/svnrdump/svnrdump.c:

Remove trailing comma after the last member in enumator lists.

Found by: Peter Johansson <peterandrejohansson{_AT_}gmail.com>

Patch by: Prabhu Gnana Sundar <prabhugs{_AT_}collab.net>

(log message adjusted by me)

  1. … 15 more files in changeset.
Eliminate svn_fspath__is_child() and svn_urlpath__is_child(); use

svn_fspath__skip_ancestor() and svn_urlpath__skip_ancestor() instead.

* subversion/include/private/svn_fspath.h

(svn_fspath__is_child, svn_urlpath__is_child): Remove.

* subversion/libsvn_subr/dirent_uri.c

(svn_fspath__is_child): Remove.

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

(svn_fs_bdb__changes_fetch): Use __skip_ancestor; check for "".

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

(svn_fs_bdb__locks_get): Use __skip_ancestor; no check for "" needed.

* subversion/libsvn_fs_base/tree.c

(verify_locks, txn_body_history_prev, prev_location): Use __skip_ancestor;

eliminate special-casing of "".

* subversion/libsvn_fs_fs/lock.c

(get_locks_filter_func): Use __skip_ancestor; no check for "" needed.

* subversion/libsvn_ra_neon/get_locks.c

(getlocks_end_element): Use __skip_ancestor; no check for "" needed.

Don't clear the scratch pool, as that was only done because the

_is_child call used it.

* subversion/libsvn_ra_neon/merge.c

(handle_resource): Use __skip_ancestor; eliminate special-casing of "".

* subversion/libsvn_ra_serf/getlocks.c

(end_getlocks): Use __skip_ancestor; no check for "" needed.

* subversion/libsvn_ra_serf/merge.c

(end_merge): Use __skip_ancestor; eliminate special-casing of "". Fix

typos in comment.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__get_relative_path): Use __skip_ancestor; eliminate

special-casing of "".

* subversion/libsvn_ra_svn/client.c

(ra_svn_get_locks): Use __skip_ancestor; no check for "" needed.

* subversion/libsvn_repos/rev_hunt.c

(svn_repos__prev_location): Use __skip_ancestor; eliminate

special-casing of "".

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

(test_fspath_is_child): Rename to 'test_fspath_skip_ancestor' and update

to test svn_fspath__skip_ancestor() instead, which was untested.

(test_funcs): Update the name and description of that test.

  1. … 13 more files in changeset.
Following up on r1133032, remove a bunch on unused includes from

libsvn_ra_serf.

* subversion/libsvn_ra_serf/getdate.c

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/getlocks.c

* subversion/libsvn_ra_serf/locks.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/update.c

Remove several unused includes.

  1. … 8 more files in changeset.
Add a missing #include of svn_version.h, following r1132966, and remove it

where it is unused.

* subversion/libsvn_subr/auth.c

Add a missing #include of svn_version.h (needed when compiled with support

for Gnome keyring or KDE Wallet).

* subversion/libsvn_ra_serf/blame.c,

subversion/libsvn_ra_serf/commit.c,

subversion/libsvn_ra_serf/getdate.c,

subversion/libsvn_ra_serf/getlocations.c,

subversion/libsvn_ra_serf/getlocks.c,

subversion/libsvn_ra_serf/locks.c,

subversion/libsvn_ra_serf/log.c,

subversion/libsvn_ra_serf/merge.c,

subversion/libsvn_ra_serf/options.c,

subversion/libsvn_ra_serf/replay.c,

subversion/libsvn_ra_serf/update.c,

subversion/libsvn_ra_serf/xml.c,

subversion/libsvn_subr/cmdline.c,

subversion/tests/libsvn_subr/checksum-test.c

Remove unused #include of svn_version.h.

  1. … 14 more files in changeset.
In libsvn_ra_serf rename repos_url(_str) to session_url(_str) to make it

obvious to all users that it is NOT repos_root.

No functional changes.

But reviewing this patch might be useful to find existing problems anyway,

as in our test suite these paths usually have the same value.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update user.

* subversion/libsvn_ra_serf/commit.c

(get_version_url,

setup_copy_file_headers,

open_root,

add_file,

close_edit): Update user.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Update user.

* subversion/libsvn_ra_serf/locks.c

(svn_ra_serf__get_lock,

svn_ra_serf__lock,

svn_ra_serf__unlock): Update users.

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__merge_create_req): Update user.

* subversion/libsvn_ra_serf/options.c

(capabilities_headers_iterator_callback): Update user.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__get_baseline_info): Update user.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__session_t): Rename two variables.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay,

svn_ra_serf__replay_range): Update users.

* subversion/libsvn_ra_serf/serf.c

(load_config,

svn_ra_serf__open,

svn_ra_serf__reparent,

svn_ra_serf__get_session_url,

svn_ra_serf__get_latest_revnum,

fetch_path_props,

svn_ra_serf__get_dir): Update users.

* subversion/libsvn_ra_serf/update.c

(end_report,

open_connection_if_needed,

svn_ra_serf__do_update,

svn_ra_serf__do_diff,

svn_ra_serf__do_status,

svn_ra_serf__do_switch,

svn_ra_serf__get_file): Update users.

* subversion/libsvn_ra_serf/util.c

(construct_realm): Update user.

  1. … 11 more files in changeset.