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

Changeset 1543477 is being indexed.

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.
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.
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.
Switch the get-locations report over to the v2 parser. Similar to

options, it was using an early mechanism for parsing.

* subversion/libsvn_ra_serf/getlocations.c:

(loc_state_e): add INITIAL to the enum. remove the typedef.

(loc_state_list_t): removed. obsolete.

(loc_context_t): remove STATE, FREE_STATE, DONE members.

(D_, S_): new helper macros

(getloc_ttable): new transition table.

(push_state, pop_state, start_getloc, end_getloc): removed. obsolete.

(getloc_closed): new closer function to record the rev/path pair.

(svn_ra_serf__get_locations): adjust the handler construction to use

an xml context, an expat handler, and the newer run_one() runner.

Combine many calls to get_baseline_info/add_component into a single

call to generate a revision-stable URL.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__get_stable_url): new declaration

* subversion/libsvn_ra_serf/property.c:

(svn_ra_serf__get_stable_url): new implementation

* subversion/libsvn_ra_serf/serf.c:

(svn_ra_serf__get_latest_revnum): leave a todo marker about the sole

remaining use of get_baseline_info().

(fetch_path_props): use get_stable_url

(svn_ra_serf__get_dir): use get_stable_url

* subversion/libsvn_ra_serf/commit.c:

(get_version_url): remove CONN parameter since it will always be

equal to SESSION->conns[0]. use get_stable_url

(checkout_file, open_root): update params to get_version_url

(add_directory): use get_stable_url. update params to get_version_url

(close_file): use get_stable_url

* subversion/libsvn_ra_serf/getlocationsegments.c:

(svn_ra_serf__get_location_segments): use get_stable_url

* subversion/libsvn_ra_serf/blame.c:

(svn_ra_serf__get_file_revs): use get_stable_url

* subversion/libsvn_ra_serf/log.c:

(svn_ra_serf__get_log): use get_stable_url

* subversion/libsvn_ra_serf/get_deleted_rev.c:

(svn_ra_serf__get_deleted_rev): use get_stable_url

* subversion/libsvn_ra_serf/update.c:

(svn_ra_serf__get_file): use get_stable_url

* subversion/libsvn_ra_serf/getlocations.c:

(svn_ra_serf__get_locations): use get_stable_url

* subversion/libsvn_ra_serf/mergeinfo.c:

(svn_ra_serf__get_mergeinfo): use stable_url

  1. … 10 more files in changeset.
Remove the STATUS_CODE and LOCATION from the parser context. This was

at the wrong level of abstraction -- all requests need that stuff, not

just the ones with XML responses.

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__xml_parser_t): remove STATUS_CODE and LOCATION

* subversion/libsvn_ra_serf/util.c:

(svn_ra_serf__handle_xml_parser): don't bother filling in

STATUS_CODE and HANDLER. remove a stale assertion.

* subversion/libsvn_ra_serf/mergeinfo.c:

(svn_ra_serf__get_mergeinfo): use the right LOCATION

* subversion/libsvn_ra_serf/getlocationsegments.c:

(svn_ra_serf__get_location_segments): use the right LOCATION

* subversion/libsvn_ra_serf/blame.c:

(svn_ra_serf__get_file_revs): use the right LOCATION

* subversion/libsvn_ra_serf/log.c:

(svn_ra_serf__get_log): use the right LOCATION

* subversion/libsvn_ra_serf/getlocations.c:

(svn_ra_serF__get_locations): use the right LOCATION

  1. … 6 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.
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.
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.
Once and for all, name all our anonymous struct/enum typedefs.

Follows up on r1040058, and with thanks to Danny Trebbien.

* everywhere:

Change 'typedef struct {} foo_t;' to 'typedef struct foo_t {} foo_t;'.

* subversion/libsvn_ra_serf/fake_sspi.h

(PSecurityFunctionTable, SecurityFunctionTable):

Manually effect the same change in the single pointer-to-struct typedef.

  1. … 95 more files in changeset.
Allow many more code paths in serf to return proper error codes by making

the request_body and request_header delegates return an svn_error_t *.

Except for this callback change this patch should not introduce functional

changes.

* subversion/libsvn_ra_serf/blame.c

(create_file_revs_body): Update arguments and return value.

* subversion/libsvn_ra_serf/commit.c

(create_checkout_body

setup_proppatch_headers,

create_proppatch_body,

create_put_body,

create_empty_put_body,

setup_copy_file_headers,

setup_delete_headers,

create_delete_body): Update return type and/or arguments.

* subversion/libsvn_ra_serf/getdate.c

(create_getdate_body): Update arguments and return type.

* subversion/libsvn_ra_serf/getlocations.c

(get_locations_body): Update callback prototype.

* subversion/libsvn_ra_serf/getlocationsegments.c

(create_gls_body): Update callback prototype.

* subversion/libsvn_ra_serf/getlocks.c

(create_getlocks_body): Update callback prototype.

* subversion/libsvn_ra_serf/get_deleted_rev.c

(create_getdrev_body): Update callback prototype.

* subversion/libsvn_ra_serf/locks.c

(set_lock_headers,

create_getlock_body

setup_getlock_headers

create_lock_body,

set_unlock_headers): Update callback prototype.

* subversion/libsvn_ra_serf/log.c

(create_log_body):

* subversion/libsvn_ra_serf/merge.c

(setup_merge_headers,

create_merge_body): Update callback prototype.

* subversion/libsvn_ra_serf/mergeinfo.c

(create_mergeinfo_body): Update callback prototype.

* subversion/libsvn_ra_serf/options.c

(create_options_body):

* subversion/libsvn_ra_serf/property.c

(setup_propfind_headers,

create_propfind_body): Update callback prototype.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__request_body_delegate_t,

svn_ra_serf__request_header_delegate_t): Return an svn_error_t *.

* subversion/libsvn_ra_serf/replay.c

(create_replay_body): Update callback prototype.

* subversion/libsvn_ra_serf/update.c

(headers_fetch,

create_update_report_body): Update callback prototype.

* subversion/libsvn_ra_serf/util.c

(setup_request_cb): Handle errors from the delegates

  1. … 16 more files in changeset.
Finish issue #3685: ra_serf fails to alert users of relocated

repositories (301/302 handling).

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__simple_request_context_t): Add 'location' member.

(struct svn_ra_serf__xml_parser_t): Add 'location' member.

(svn_ra_serf__error_on_status): Add 'location' parameter.

(svn_ra_serf__response_get_location): New function.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__response_get_location): New function.

(svn_ra_serf__handle_status_only, svn_ra_serf__handle_multistatus_only,

svn_ra_serf__handle_xml_parser): Use svn_ra_serf__response_get_location()

to populate the context's

'location' member.

(svn_ra_serf__error_on_status): Add 'location' parameter, and use it

(instead of the 'path' parameter) to report redirect locations.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Update call to svn_ra_serf__error_on_status().

* subversion/libsvn_ra_serf/commit.c

(return_response_err): Update call to svn_ra_serf__error_on_status(),

and give the code some room to breathe.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Update call to svn_ra_serf__error_on_status().

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Update call to

svn_ra_serf__error_on_status(). While here, fix an error leak, too.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Update call to svn_ra_serf__error_on_status().

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__exchange_capabilities): Use svn_ra_serf__error_on_status() to

notice common errors, including the 301/302 redirect variety.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__wait_for_props): Update call to svn_ra_serf__error_on_status().

* subversion/libsvn_ra_serf/update.c

(handle_stream): Use svn_ra_serf__response_get_location(), and

update call to svn_ra_serf__error_on_status().

  1. … 9 more files in changeset.
Create request body buckets on demand in libsvn_ra_serf.

* subversion/libsvn_ra_serf/blame.c

(blame_context_t): Add include_merged_revisions member.

(create_file_revs_body): New function.

(svn_ra_serf__get_file_revs): Copy parameters to blame_ctx and setup

create body delegate.

* subversion/libsvn_ra_serf/getlocations.c

(loc_context_t): Add path, location_revisions and peg_revision members

to use them to create body delegate.

(create_get_locations_body): New function.

(svn_ra_serf__get_locations): Copy parameters to loc_ctx and setup create

body delegate.

* subversion/libsvn_ra_serf/getlocationsegments.c

(gls_context_t): Add peg_revision, start_rev, end_rev and path members

to use them to create body delegate

(create_gls_body): New function.

(svn_ra_serf__get_location_segments): Copy parameters to gls_ctx and

setup create body delegate.

  1. … 2 more files in changeset.
Add "const" to all "apr_array_header_t *" input parameters in public and

private APIs.

(Note that we are allowed to add "const" to a pointer parameter of a public

API, and have done so before, because that is a backward-compatible API

change and doesn't change the ABI at all.)

The public functions whose prototypes are changed are listed individually

below; the private functions are not.

* subversion/include/svn_auth.h

(svn_auth_open)

* subversion/include/svn_client.h

(svn_client_get_commit_log_t,

svn_client_copy5,

svn_client_copy4,

svn_client_move5,

svn_client_patch)

* subversion/include/svn_delta.h

(svn_delta_path_driver,

svn_file_rev_handler_t,

svn_file_rev_handler_old_t)

* subversion/include/svn_fs.h

(svn_fs_change_txn_props)

* subversion/include/svn_mergeinfo.h

(svn_rangelist_diff,

svn_rangelist_merge,

svn_rangelist_remove,

svn_rangelist_intersect,

svn_rangelist_inheritable2,

svn_rangelist_inheritable,

svn_rangelist_dup)

* subversion/include/svn_opt.h

(svn_opt_args_to_target_array3,

svn_opt_args_to_target_array2,

svn_opt_args_to_target_array,

svn_opt_eat_peg_revisions)

* subversion/include/svn_ra.h

(svn_ra_file_rev_handler_t,

svn_ra_get_locations,

svn_ra_plugin_t.get_locations)

* subversion/include/svn_ra_svn.h

(svn_ra_svn_command_handler,

svn_ra_svn_set_capabilities,

svn_ra_svn_parse_tuple,

svn_ra_svn_parse_proplist)

* subversion/include/svn_repos.h

(svn_repos_file_rev_handler_t,

svn_repos_trace_node_locations,

svn_repos_fs_get_mergeinfo,

svn_repos_fs_change_txn_props,

svn_repos_remember_client_capabilities)

* subversion/include/svn_sorts.h

(svn_sort__bsearch_lower_bound)

* subversion/include/svn_string.h

(svn_cstring_match_glob_list)

* subversion/include/svn_wc.h

(svn_wc_get_status_editor3,

svn_wc_get_update_editor4,

svn_wc_get_update_editor3,

svn_wc_get_switch_editor4,

svn_wc_get_switch_editor3,

svn_wc_match_ignore_list)

* subversion/include/private/svn_cmdline_private.h

* subversion/include/private/svn_opt_private.h

* subversion/libsvn_client/blame.c

* subversion/libsvn_client/client.h

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/commit_util.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/deprecated.c

* subversion/libsvn_client/merge.c

* subversion/libsvn_client/mergeinfo.c

* subversion/libsvn_client/mergeinfo.h

* subversion/libsvn_client/patch.c

* subversion/libsvn_client/ra.c

* subversion/libsvn_delta/compat.c

* subversion/libsvn_delta/path_driver.c

* subversion/libsvn_fs_base/reps-strings.c

* subversion/libsvn_fs_base/revs-txns.c

* subversion/libsvn_fs_base/revs-txns.h

* subversion/libsvn_fs_fs/fs_fs.c

* subversion/libsvn_fs_fs/fs_fs.h

* subversion/libsvn_fs/fs-loader.c

* subversion/libsvn_fs/fs-loader.h

* subversion/libsvn_ra/compat.c

* subversion/libsvn_ra/ra_loader.c

* subversion/libsvn_ra/ra_loader.h

* subversion/libsvn_ra/wrapper_template.h

* subversion/libsvn_ra_local/ra_plugin.c

* subversion/libsvn_ra_neon/get_locations.c

* subversion/libsvn_ra_neon/props.c

* subversion/libsvn_ra_neon/ra_neon.h

* subversion/libsvn_ra_serf/getlocations.c

* subversion/libsvn_ra_serf/ra_serf.h

* subversion/libsvn_ra_svn/client.c

* subversion/libsvn_ra_svn/cyrus_auth.c

* subversion/libsvn_ra_svn/editorp.c

* subversion/libsvn_ra_svn/internal_auth.c

* subversion/libsvn_ra_svn/marshal.c

* subversion/libsvn_ra_svn/ra_svn.h

* subversion/libsvn_repos/fs-wrap.c

* subversion/libsvn_repos/log.c

* subversion/libsvn_repos/repos.c

* subversion/libsvn_repos/repos.h

* subversion/libsvn_repos/rev_hunt.c

* subversion/libsvn_subr/auth.c

* subversion/libsvn_subr/cmdline.c

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/mergeinfo.c

* subversion/libsvn_subr/opt.c

* subversion/libsvn_subr/sorts.c

* subversion/libsvn_subr/svn_string.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/deprecated.c

* subversion/libsvn_wc/diff.c

* subversion/libsvn_wc/status.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/util.c

* subversion/mod_dav_svn/dav_svn.h

* subversion/mod_dav_svn/reports/file-revs.c

* subversion/mod_dav_svn/util.c

* subversion/svn/cl.h

* subversion/svn/props.c

* subversion/svn/switch-cmd.c

* subversion/svn/util.c

* subversion/svndumpfilter/main.c

* subversion/svnserve/serve.c

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

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

  1. … 78 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.

* NOTICE:

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.
Relicense Subversion under the Apache License, Version 2.0.

* NOTICE: New.

* LICENSE: New.

* COPYING,

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.
As part of resolving issue (issue #3375) remove unused error container

for getlocations and getlocationsegments ra calls.

* subversion/libsvn_ra_serf/getlocations.c

(loc_context_t): Remove error variable.

(svn_ra_serf__get_locations): Don't initialize and check for loc error.

* subversion/libsvn_ra_serf/getlocationsegments.c

(gls_context_t): Remove error variable

(svn_ra_serf__get_location_segments): Don't initialize and check for

gls error.

  1. … 1 more file in changeset.
As part of the serf error handling overhaul (issue #3375) automatically

move the xml parser errors into the sessions pending error to allow

removing all the specific checks from the individual ra function

implementations.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs):

* subversion/libsvn_ra_serf/commit.c

(open_root): Remove specific checks on xml parser errors

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Remove xml parser error check and possible

error leak.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Remove parsing, remove two possible

error leaks and document another one.

* subversion/libsvn_ra_serf/locks.c

(handle_lock): Put lock error in session state instead of xml state.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Remove check on parser errors.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Remove check on parser errors.

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__get_options_parser_error): Remove function, uses xml parser

error.

(svn_ra_serf__exchange_capabilities): Don't check options parser errors.

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__wait_for_props): Don't check xml parser errors.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__get_options_parser_error): Remove function.

(SVN_SESSION_ERR): Add temporary helper.

* subversion/libsvn_ra_serf/replay.c

(svn_ra_serf__replay):

* subversion/libsvn_ra_serf/update.c

(finish_report): Don't check parser errors.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__handle_xml_parser): Put parser errors in the session.

  1. … 12 more files in changeset.
Make libsvn_ra_serf canonicalize urls it receives to allow it to

use svn_path_url_add_component2. This resolves all obsolete warnings

in libsvn_ra_serf.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): In all these ...

* subversion/libsvn_ra_serf/commit.c

(global): Include svn_dirent_uri.h.

(handle_checkout, checkout_dir, get_version_url, checkout_file,

setup_copy_dir_headers, post_headers_iterator_callback, open_root,

delete_entry, add_directory, open_directory, add_file, open_file,

close_file): ...

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): ...

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): ...

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): ...

* subversion/libsvn_ra_serf/get_deleted_rev.c

(svn_ra_serf__get_deleted_rev): ...

* subversion/libsvn_ra_serf/locks.c

(svn_ra_serf__get_lock): ...

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): ...

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): ...

* subversion/libsvn_ra_serf/options.c

(global): Include svn_dirent_uri.h.

(end_options): ...

* subversion/libsvn_ra_serf/property.c

(global): Include svn_dirent_uri.h.

(svn_ra_serf__get_baseline_info): ...

* subversion/libsvn_ra_serf/serf.c

(fetch_path_props, svn_ra_serf__get_dir): ...

* subversion/libsvn_ra_serf/update.c

(svn_ra_serf__get_file): ... functions, make sure incoming and generated

urls are always canonical and use svn_path_url_add_component2() that

assumes the components are already canonical.

  1. … 12 more files in changeset.
Reintegrate the http-protocol-v2 branch.

(Merged /branches/http-protocol-v2:r34321-35967)

  1. … 28 more files in changeset.
ra_serf: Introduce internal functions for creating XML serf buckets.

* subversion/libsvn_ra_serf/xml.c:

* subversion/libsvn_ra_serf/ra_serf.h:

(svn_ra_serf__add_xml_header_buckets, svn_ra_serf__add_open_tag_buckets,

svn_ra_serf__add_close_tag_buckets, svn_ra_serf__add_cdata_len_buckets):

New functions for creating XML serf buckets.

(svn_ra_serf__add_tag_buckets): Use new functions to generate XML.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs),

* subversion/libsvn_ra_serf/commit.c

(create_checkout_body, proppatch_walker, create_proppatch_body,

create_delete_body),

* subversion/libsvn_ra_serf/getdate.c

(create_getdate_body),

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations),

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments)

* subversion/libsvn_ra_serf/getlocks.c

(create_getlocks_body),

* subversion/libsvn_ra_serf/locks.c

(create_getlock_body, create_lock_body),

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log)

* subversion/libsvn_ra_serf/merge.c

(svn_ra_serf__merge_lock_token_list, create_merge_body),

* subversion/libsvn_ra_serf/mergeinfo.c

(create_mergeinfo_body),

* subversion/libsvn_ra_serf/options.c

(create_options_body),

* subversion/libsvn_ra_serf/replay.c

(create_replay_body),

* subversion/libsvn_ra_serf/update.c

(set_path, delete_path, link_path, finish_report, make_update_reporter): Use

svn_ra_serf__add_* to generate XML buckets. Don't xml-escape parameters

since svn_ra_serf__add_* will care about xml-escaping.

  1. … 14 more files in changeset.
Combine duplicate code into an already existing function.

* subversion/libsvn_ra_serf/property.c

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__get_baseline_info): Add extra parameter latest_revnum, which

will be set to the baseline revision.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__get_latest_revnum,

fetch_path_props,

svn_ra_serf__get_dir): Use svn_ra_serf__get_baseline_info to avoid code

duplication.

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): Ditto.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Add extra NULL argument for latest_revnum in

call to svn_ra_serf__get_baseline_info.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): Ditto.

* subversion/libsvn_ra_serf/log.c

(svn_ra_serf__get_log): Ditto.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Ditto.

  1. … 7 more files in changeset.
Fix issue #3137: use a consistent error code when a path is not found in the

repository. DAV uses a 404 status code to indicate missing paths, so we now

convert that code to SVN_ERR_FS_NOT_FOUND, as we do for ra_local and ra_svn.

As this is client side only, this patch also removes all instances were we

test for the now deprecated error code SVN_ERR_RA_DAV_PATH_NOT_FOUND.

* subversion/include/svn_error_codes.h

(SVN_ERR_RA_DAV_PATH_NOT_FOUND): Deprecate error code.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__error_on_status): New function declaration.

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__error_on_status): New function definition.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__has_capability,

svn_ra_serf__check_path,

svn_ra_serf__stat): Use SVN_ERR_FS_NOT_FOUND error code here ..

* subversion/libsvn_ra_serf/util.c

(svn_ra_serf__discover_root): .. and here.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Use svn_ra_serf__error_on_status here ..

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): ..

* subversion/libsvn_ra_serf/blame.c

(svn_ra_serf__get_file_revs): ..

* subversion/libsvn_ra_serf/update.c

(handle_stream): ..

* subversion/libsvn_ra_serf/property.c

(svn_ra_serf__wait_for_props): ..

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): ..

* subversion/libsvn_ra_serf/commit.c

(checkout_dir): .. and here.

(checkout_dir, get_version_url): Use better error code.

(checkout_file): Use svn_ra_serf__error_on_status and better error code.

* subversion/libsvn_ra_neon/props.c

(svn_ra_neon__get_one_prop,

svn_ra_neon__search_for_starting_props,

svn_ra_neon__do_check_path,

svn_ra_neon__do_stat): Use SVN_ERR_FS_NOT_FOUND error code here ..

* subversion/libsvn_ra_neon/get_locks.c

(svn_ra_neon__get_locks): ..

* subversion/libsvn_ra_neon/util.c

(generate_error): ..

* subversion/libsvn_ra_neon/commit.c

(commit_add_file): .. and here.

* subversion/libsvn_ra_neon/session.c

(svn_ra_neon__has_capability): Don't check for SVN_ERR_RA_DAV_PATH_NOT_FOUND.

* subversion/svn/mkdir-cmd.c

(svn_cl__mkdir): Don't check for SVN_ERR_RA_DAV_PATH_NOT_FOUND.

* subversion/libsvn_client/merge.c

(filter_self_referential_mergeinfo,

calculate_remaining_ranges,

get_mergeinfo_walk_cb): Don't check for SVN_ERR_RA_DAV_PATH_NOT_FOUND.

  1. … 17 more files in changeset.
ra_serf: Fix issue #3138: make get_locations and get_location_segments return

an error when the target url isn't found in the repository. This also fixes an

abort on exit of 'svn merge'.

* subversion/libsvn_ra_serf/getlocations.c

(svn_ra_serf__get_locations): Raise SVN_ERR_RA_DAV_PATH_NOT_FOUND error when

the target item doesn't exist in the repository.

* subversion/libsvn_ra_serf/getlocationsegments.c

(svn_ra_serf__get_location_segments): idem.

* subversion/libsvn_ra_serf/mergeinfo.c

(svn_ra_serf__get_mergeinfo): Raise the error when the target item doesn't

exist in the repository.

* subversion/tests/cmdline/merge_tests.py

(merge_unknown_url): New test.

(test_list): Run the new test.

* subversion/tests/cmdline/mergeinfo_tests.py

(mergeinfo_on_unknown_url): New test.

(test_list): Run the new test.

  1. … 4 more files in changeset.