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

Changeset 1657026 is being indexed.

As we are revving svn_client_revert() for 1.9 anyway, now is the time to

give it a 'metadata_only' flag, like we have on copy and move.

This helps gui clients that should record changes after they occured, who

don't want to revert local changes just to re-apply them using the Subversion

function. (And thereby avoiding file lock challenges on Windows)

Note that some of the refactoring in this patch is preparation for a

followup performance patch for reverting huge trees (like entire WC).

* subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp

(Java_org_apache_subversion_javahl_SVNClient_revert): Add another boolean.

* subversion/bindings/javahl/native/SVNClient.cpp

(SVNClient::revert): Forward metadata_only.

* subversion/bindings/javahl/native/SVNClient.h

(SVNClient::revert): Add metadata_only boolean.

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

(revert): Add and document argument.

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

(revert): Add argument (3*)

* subversion/include/svn_client.h

(svn_client_revert3): Add and document argument.

(svn_client_revert2): Document behavior of new argument.

* subversion/include/svn_wc.h

(svn_wc_revert5): Add and document argument.

(svn_wc_revert4): Document behavior of new argument.

* subversion/libsvn_client/deprecated.c

(svn_client_revert2): Update caller.

* subversion/libsvn_client/revert.c

(revert_with_write_lock_baton): Add flag.

(revert): Update caller. Pass error to notify.

(svn_client_revert3): Add argument. Properly use iterpool.

Update caller.

* subversion/libsvn_wc/deprecated.c

(svn_wc_revert4): Update caller.

* subversion/libsvn_wc/revert.c

(revert_wc_data): Add prototype.

(revert_restore): Add argument. Extract the non metadata work

code to revert_wc_data.

(revert_wc_data): New function. Placed below revert_restore to

minimize changes to this file in this patch.

* subversion/svn/revert-cmd.c

(svn_cl__revert): Update caller.

* subversion/tests/libsvn_wc/utils.c

(sbox_wc_revert): Update caller.

  1. … 12 more files in changeset.
Remove a few ';;' instances from our code.

No functional changes.

* subversion/libsvn_client/deprecated.c

(svn_client_uuid_from_url):

* subversion/libsvn_client/mergeinfo.c

(svn_client__mergeinfo_log):

* subversion/libsvn_subr/stream.c

(create_tempfile):

* subversion/libsvn_wc/conflicts.c

(svn_wc__read_conflicts):

* subversion/libsvn_wc/merge.c

(detranslate_wc_file):

* subversion/svnmucc/svnmucc.c

(execute): Remove duplicated ';'.

  1. … 5 more files in changeset.
Following the availability of apr_hash_this_key() etc. in APR v1.5, use

these in Subversion code instead of svn__apr_hash_index_key() etc. Provide

substitutes only when APR is too old to provide them.

* subversion/include/svn_types.h,

subversion/libsvn_subr/iter.c

(svn__apr_hash_index_key,

svn__apr_hash_index_klen,

svn__apr_hash_index_val):

Rename to apr_hash_this_key, apr_hash_this_key_len, apr_hash_this_val.

Declare and define them only if APR is older than 1.5.

Everywhere else: track the renames.

  1. … 102 more files in changeset.
Reverting experimental move-related APIs.

For details see http://svn.haxx.se/dev/archive-2014-05/0155.shtml

This effectively reverts revisions 1595600,1572044,1547039,1535341,

1535330,1535080,1535029,1534280,1532200,1527217,1527088,1526057,

1526014,1526013,1525484,1525467,1525464,1525463,1525462,1525460,

1525459,1525453,1525448,1525442,1525432,1525429 and 1525419.

Remove respective entries from CHANGES.

  1. … 43 more files in changeset.
Reintegrated the remote-only-status branch.
  1. … 25 more files in changeset.
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.
Make it possible to clear changelists while reverting nodes by updating the

svn_client_revert2 api.

While this might look like a separate operation, revert does quite some work

to preserve existing changelists during reverts. Making this optional makes

the common revert code more efficient, while at the same time helping GUI

clients that use changelists only for marking changes.

* subversion/include/svn_client.h

(svn_client_revert3): New function.

(svn_client_revert2): Deprecate function.

(svn_client_revert): Use @deprecate as we do it now.

* subversion/include/svn_wc.h

(svn_wc_revert5): New function.

(svn_wc_revert4): Deprecate function.

* subversion/libsvn_client/deprecated.c

(svn_client_revert2): New function.

* subversion/libsvn_client/revert.c

(revert_with_write_lock_baton): Add variable.

(revert): Update caller.

(svn_client_revert2): Rename to ...

(svn_client_revert3): ... this. Add argument. Update caller.

* subversion/libsvn_wc/deprecated.c

(svn_wc_revert4): New function.

* subversion/libsvn_wc/revert.c

(svn_wc__revert_internal): Rename to...

(revert): ... this. Make static and add argument. Update caller.

(revert_changelist,

revert_partial): Add argument. Update caller.

(svn_wc_revert4): Rename to ...

(svn_wc_revert5): ... this. Update caller.

* subversion/libsvn_wc/wc.h

(svn_wc__revert_internal): Remove function that is only used in revert.c.

* subversion/libsvn_wc/wc_db.c

(revert_baton_t): New struct.

(op_revert_txn): Use new baton. Handle complete ACTUAL delete.

(op_revert_recursive_txn): Use baton. Handle complete ACTUAL deletes.

(svn_wc__db_op_revert): Add argument. Update caller.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_op_revert): Add argument.

  1. … 8 more files in changeset.
Add support for walking externals to the api behind 'svn info', like how this

is implemented for 'svn status'.

* subversion/include/svn_client.h

(svn_client_info4): New function.

(svn_client_info3): Deprecate function.

* subversion/include/svn_wc.h

(svn_wc_notify_action_t): Add svn_wc_notify_info_external value.

* subversion/libsvn_client/deprecated.c

(svn_client_info3): New function.

* subversion/libsvn_client/info.c

(includes): Put in understandable order. Add svn_sorts.h.

(do_external_info): New function.

(svn_client_info3): Rename to ...

(svn_client_info4): ... this. Add argument. Handle externals for local info.

* subversion/svn/info-cmd.c

(svn_cl__info): Update caller.

* subversion/svn/notify.c

(notify): Add notification for svn_wc_notify_info_external.

* subversion/svn/svn.c

("info"): Support opt_include_externals.

Suggested by: schabi

  1. … 6 more files in changeset.
Following up on r1548075, split the new in 1.9 svn_client_cleanup2() api into

two separate functions.

* subversion/include/svn_client.h

(svn_client_vacuum): New function.

(svn_client_cleanup2): Update prototype. Remove vacuum support.

(svn_client_cleanup): Update documentation.

* subversion/libsvn_client/cleanup.c

(cleanup_status_walk_baton): Add more flags.

(do_cleanup): Rely on svn_wc_cleanup4() for locking check when not breaking

locks. Pass and handle flags.

(cleanup_status_walk): Update caller.

(svn_client_cleanup2): Update api.

(svn_client_vacuum): New function.

* subversion/libsvn_client/deprecated.c

(svn_client_cleanup): Update caller.

* subversion/svn/cleanup-cmd.c

(svn_cl__cleanup): Update caller. Choose the right function for the job.

  1. … 3 more files in changeset.
Make the 'svn_client_cat()' API a bit more generic usable for api users,

by allowing the suppression of keyword expansion and by optionally returning

the properties of the node.

* subversion/include/svn_client.h

(svn_client_cat3): New function.

(svn_client_cat2): Deprecate function.

* subversion/libsvn_client/cat.c

(svn_client_cat2): Rename to ...

(svn_client_cat3): ... this. Add support for not expanding keywords and

for returning the properties.

* subversion/libsvn_client/deprecated.c

(svn_client_cat2): New function.

  1. … 2 more files in changeset.
[Reverted in r1597989]

Last API layer to update: bump svn_client_log.

Simply pass an extra move_behavior option to the next layer

* subversion/include/svn_client.h

(svn_client_log6): declare bumped API

(svn_client_log5): deprecate

* subversion/libsvn_client/deprecated.c

(svn_client_log5): implement in terms of svn_client_log6

* subversion/libsvn_client/log.c

(run_ra_get_log): pass the extra paramter through

(svn_client_log6): ditto; replaces ...

(svn_client_log5): ... this one

  1. … 2 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.
Add support for cleaning up externals via 'svn cleanup --include-externals'.

This should address the feature request from issue #2325.

* subversion/include/svn_client.h

(svn_client_cleanup2): Add include_externals parameter.

* subversion/include/svn_wc.h

(svn_wc_notify_t): New action svn_wc_notify_cleanup_external.

* subversion/libsvn_client/cleanup.c

(remove_unversioned_items_baton): Rename to ...

(cleanup_status_walk_baton): ... this, and replace notify/cancel support

members with a client context member which includes them.

(do_cleanup): New helper function, extracted from svn_client_cleanup2().

(remove_unversioned_items): Rename to ...

(cleanup_status_walk): ... this, and extend to optionally clean up externals

found during the status walk. Adjust for baton changes, too.

(svn_client_cleanup2): New parameter include_externals. Call the do_cleanup()

helper function which replaces most of this function's body.

* subversion/libsvn_client/deprecated.c

(svn_client_cleanup): Account for new parameter to svn_client_cleanup2().

* subversion/svn/cleanup-cmd.c

(svn_cl__cleanup): Pass opt_state->include_externals to svn_client_cleanup2().

* subversion/svn/notify.c

(notify): Handle svn_wc_notify_cleanup_external.

* subversion/svn/svn.c

(svn_cl__cmd_table): Add --include-extenals option to 'svn cleanup'.

* subversion/tests/cmdline/wc_tests.py

(cleanup_dir_external, test_list): New rather simple test.

  1. … 7 more files in changeset.
Allow 'svn cleanup' to remove unversioned items from the working copy.

This should address the feature request from issue #3549.

Add two new options to 'svn cleanup', --remove-unversioned and --no-ignore.

The former causes unversioned files and directories to be removed after

successful cleanup. The latter causes ignored items to be removed as well.

One remaining question is what to do with externals. Right now, 'svn cleanup'

never recurses into externals. Should it recurse into externals if the

--remove-unversioned option is given? Should we change it to always recurse

into externals by default? I'm not quite sure.

* subversion/include/svn_client.h

(svn_client_cleanup2): Declare.

(svn_client_cleanup): Deprecate.

* subversion/libsvn_client/cleanup.c

(remove_unversioned_items): New helper function.

(svn_client_cleanup2): Implement as an extension of svn_client_cleanup(),

which can optionally remove unversioned items after all other cleanup

actions, via a status walk.

* subversion/libsvn_client/deprecated.c

(svn_client_cleanup): Implement as a wrapper around svn_client_cleanup2().

* subversion/svn/cl.h

(svn_cl__opt_state_t): Add new 'remove_unversioned' option.

* subversion/svn/cleanup-cmd.c

(svn_cl__cleanup): Run svn_client_cleanup2() to support removal of

unversioned items. Reject --no-ignore option without --remove-unversioned.

* subversion/svn/svn.c

(svn_cl__longopt_t): Add opt_remove_unversioned.

(svn_cl__options): Add --remove-unversioned option.

(svn_cl__cmd_table): Extend help text of 'svn cleanup'.

(sub_main): Handle --remove-unversioned option.

* subversion/tests/cmdline/wc_tests.py

(cleanup_unversioned_items, test_list): New test.

  1. … 6 more files in changeset.
* **/**

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

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

No functional changes.

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

* subversion/libsvn_client/add.c

* subversion/libsvn_client/cat.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/revert.c

* subversion/libsvn_client/status.c

* subversion/libsvn_client/switch.c

* subversion/libsvn_client/update.c

* subversion/libsvn_client/util.c

  1. … 30 more files in changeset.
Rev the standard libsvn_client api used for opening ra sessions, to allow

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

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

couldn't.

For just merge_tests.py this patch makes libsvn_ra_serf avoid more than 550

http requests.

* subversion/include/private/svn_client_private.h

(svn_client__ra_session_from_path2): Update documentation.

* subversion/include/svn_client.h

(svn_client_open_ra_session2): New function.

(svn_client_open_ra_session): Deprecate function.

* subversion/libsvn_client/add.c

(mkdir_urls): Update caller.

* subversion/libsvn_client/client.h

(svn_client__open_ra_session_internal): Change some arguments. Update

documentation. Add scratch_pool.

* subversion/libsvn_client/commit.c

(check_url_kind): Update caller.

* subversion/libsvn_client/copy.c

(repos_to_repos_copy): Update caller.

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

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

commit here.

(repos_to_wc_copy): Update caller.

* subversion/libsvn_client/delete.c

(delete_urls_multi_repos): Update caller.

* subversion/libsvn_client/deprecated.c

(svn_client_open_ra_session): New function.

(svn_client_uuid_from_url): Wrap svn_client_get_repos_root, but with a

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

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

* subversion/libsvn_client/diff.c

(diff_prepare_repos_repos,

diff_repos_repos): Obtain wri_abspath and use it when opening ra

session.

(diff_repos_wc,

diff_summarize_repos_repos): Update caller.

* subversion/libsvn_client/import.c

(svn_client_import5): Update caller.

* subversion/libsvn_client/iprops.c

(get_inheritable_props): Update caller.

* subversion/libsvn_client/list.c

(svn_client__ra_stat_compatible): Update caller.

* subversion/libsvn_client/locking_commands.c

(svn_client_lock,

svn_client_unlock): Update caller.

* subversion/libsvn_client/merge.c

(ensure_ra_session_url): Pass wri_abspath to speed up merging.

(open_reintegrate_source_and_target,

svn_client_find_automatic_merge,

do_automatic_merge_locked): Update caller.

* subversion/libsvn_client/mergeinfo.c

(svn_client__get_wc_or_repos_mergeinfo_catalog): Update caller.

* subversion/libsvn_client/prop_commands.c

(propset_on_url,

svn_client_revprop_set2): Update caller.

(svn_client_revprop_get,

svn_client_revprop_list): Update caller. Introduce subpool for function

without result_pool argument.

* subversion/libsvn_client/ra.c

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

from the ra call a hashtable lookup.

(get_wc_contents): Use wcroot_abspath.

(svn_client__open_ra_session_internal): Separate wri_abspath and base

abspath handling. Use scratch_pool where possible.

(svn_client_open_ra_session): Rename to ...

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

(svn_client__ra_session_from_path2): Update caller.

(svn_client__repos_locations): Update caller.

(svn_client__get_youngest_common_ancestor): Update caller.

* subversion/libsvn_client/status.c

(reporter_finish_report,

svn_client_status5): Update caller.

* subversion/libsvn_client/update.c

(update_internal): Update caller.

* subversion/libsvn_client/util.c

(svn_client_get_repos_root): Update caller.

  1. … 19 more files in changeset.
Remove a result_pool argument from a new in 1.8 function that doesn't have

output arguments. Values passed to a callback shouldn't be allocated in a

global result pool, but in some iterpool. Storing everything in a result

hash breaks the streamy api pattern.

* subversion/include/svn_client.h

(svn_client_proplist4): Remove result_pool.

* subversion/libsvn_client/deprecated.c

(svn_client_proplist3): Update caller.

* subversion/libsvn_client/prop_commands.c

(pristine_or_working_props): Remove function. Fold in only caller.

(remote_proplist): Add cancel_func. Remove result pool. Don't duplicate the

entire hash to remove 3 or 4 entry props. Handle cancelation.

Rename subpool to iterpool.

(get_remote_props): Remove result pool. Update caller.

(get_local_props): Fold in pristine_or_working_props.

(svn_client_proplist4): Remove argument. Fix typo.

* subversion/svn/proplist-cmd.c

(svn_cl__proplist): Update caller.

  1. … 3 more files in changeset.
In Subversion 1.7 we added an --ignore-ancestry flag to switch, but even

without that flag we don't use the ancestry to properly identify tree

conflicts caused by switching. To do that we must ask the repos layer

(via the ra layer) to notice ancestry.

This patch updates all ra layers to allow noticing ancestry during switching.

For ra_local and ra_serf this works for all existing server versions, but for

ra_svn this requires a new svnserve. (Our dav protocol already supported

ignore_ancestry and send copyfrom args as separate flags)

If necessary we could rev the client switch api to use separate ignore and

notice ancestry flags, but I don't think this is necessary in this case.

This patch also resolves an Subversion 1.5 'sussman TODO', by also adding a

send_copyfrom_args option.

* subversion/include/svn_ra.h

(svn_ra_do_switch3): New function, adding two booleans and using dual pools.

(svn_ra_do_switch2): Deprecate function.

* subversion/libsvn_client/deprecated.c

(svn_client_switch2): Add comment.

* subversion/libsvn_client/switch.c

(switch_internal): Pass ignore_ancestry flag to svn_ra_do_switch3().

* subversion/libsvn_ra/deprecated.c

(svn_ra_do_switch2): New function around svn_ra_do_switch3.

(svn_ra_do_switch): Update caller.

* subversion/libsvn_ra/ra_loader.c

(svn_ra_do_switch2): Rename to...

(svn_ra_do_switch3): ... this. Forward 2 more booleans and dual pools.

* subversion/libsvn_ra/ra_loader.h

(svn_ra__vtable_t): Extend do_switch function.

* subversion/libsvn_ra/wrapper_template.h

(compat_do_switch): Update caller.

* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__do_switch): Update arguments. Forward arguments to

make_reporter.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__do_switch): Update arguments.

* subversion/libsvn_ra_serf/update.c

(svn_ra_serf__do_switch): Update arguments. Forward arguments to

make_update_reporter.

* subversion/libsvn_ra_svn/client.c

(ra_svn_switch): Update arguments. Pass booleans.

* subversion/libsvn_ra_svn/marshal.c

(vwrite_cmd_switch): Send two more arguments.

* subversion/svnserve/serve.c

(switch_cmd): Accept two optional booleans and pass these to accept_report.

* subversion/tests/cmdline/switch_tests.py

(switch_across_replacement): Remove XFail, move and update comment.

Found by: julianfoad

  1. … 13 more files in changeset.
* subversion/libsvn_client/deprecated.c

(svn_client_uuid_from_path2): Use new public api instead of internal api.

Separate the two meanings of 'ignore_ancestry' in the libsvn_client merge

APIs. The two new flags are 'ignore_mergeinfo' and 'diff_ignore_ancestry'.

* subversion/include/svn_client.h

(svn_client_merge5, svn_client_merge_peg5): New, with separate flags.

(svn_client_merge4, svn_client_merge_peg4): Deprecated.

* subversion/libsvn_client/merge.c

(svn_client_merge5, svn_client_merge_peg5): New, with separate flags.

* subversion/libsvn_client/deprecated.c

(svn_client_merge4, svn_client_merge_peg4): Re-implement as wrappers.

* subversion/svn/merge-cmd.c

(merge_reintegrate, svn_cl__merge): Update callers.

  1. … 3 more files in changeset.
To finally close issue #3009, and for similarity with 'svnlook diff', add a

--no-diff-added output filtering argument to 'svn diff'.

* subversion/include/svn_client.h

(svn_client_diff6,

svn_client_diff_peg6): Update arguments.

* subversion/libsvn_client/deprecated.c

(svn_client_diff5,

svn_client_diff_peg5): Update caller.

* subversion/libsvn_client/diff.c

(diff_cmd_baton): Add variable.

(diff_file_added): Filter diff if requested.

(svn_client_diff6,

svn_client_diff_peg6): Set value in baton.

* subversion/svn/cl.h

(svn_cl__opt_state_t.diff): Add variable.

* subversion/svn/diff-cmd.c

(svn_cl__diff): Update caller.

* subversion/svn/log-cmd.c

(svn_cl__log): Update caller.

* subversion/svn/svn.c

(svn_cl__longopt_t): Add value.

(svn_cl__options): Add argument.

(svn_cl__cmd_table): Declare --no-diff-added for diff.

(sub_main): Parse argument.

  1. … 6 more files in changeset.
Following up on the deprecation of svn_wc_move(), make the metadata_only

feature available via the new in 1.8 svn_client_move7().

* subversion/include/svn_client.h

(svn_client_move7): Add argument.

(svn_client_move6): Update documentation.

* subversion/libsvn_client/copy.c

(do_wc_to_wc_moves_with_locks2,

do_wc_to_wc_moves_with_locks1,

do_wc_to_wc_moves): Forward metadata_only by adding arguments.

(try_copy): Add metadata_only support.

(svn_client_copy6): Update caller.

(svn_client_move7): Add argument.

* subversion/libsvn_client/deprecated.c

(svn_client_move6): Update caller.

* subversion/svn/move-cmd.c

(svn_cl__move): Update caller.

  1. … 3 more files in changeset.
* subversion/libsvn_client/deprecated.c

(svn_client_commit5): Revert 1.7 api behavior of skipping file externals

on commit, unless they are an explicit target of the commit. Passing

TRUE will make them an explicit target.

* subversion/libsvn_client/commit.c

(svn_client_commit5): Move this function...

* subversion/libsvn_client/deprecated.c

(svn_client_commit5): ... to this file.

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

* subversion/include/svn_client.h

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

(svn_client_list_func_t): Deprecate type.

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

include_externals.

(svn_client_list2): Deprecate it.

* subversion/libsvn_client/client.h

(svn_client__list_internal): New function.

(svn_client__list_externals): New function.

* subversion/libsvn_client/deprecated.c

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

(list_func_wrapper, wrap_list_func): Helper functions to deprecate

svn_client_list2().

(svn_client_list2): Call svn_client_list3 with include_externals set to

FALSE, and use svn_client_list_func2_t as callback implemented by

list_func_wrapper().

* subversion/libsvn_client/externals.c

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

externals under list target recursively and list them using

svn_client_list3().

(svn_client__list_externals): New function to parse externals description

and list it using list_external_items().

* subversion/libsvn_client/list.c

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

svn_client_list_func2_t instead of svn_client_list_func_t to report file

and directory entries. Use external_parent_url and external_target when

external items are being listed.

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

accepts few additional parameters that carries external information.

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

by get_dir_contents() using svn_client__list_externals().

(svn_client_list3): New function, thin wrapper around

svn_client__list_internal().

* subversion/svn/list-cmd.c

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

information.

(print_dirent): Implement svn_client_list_func2_t to control the output when

used with externals.

(print_dirent_xml): Implement svn_client_list_func2_t. Enclose the external

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

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

during externals processing.

* subversion/svn/main.c

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

description about the option.

* subversion/tests/cmdline/externals_tests.py

(include_externals): Rename it to 'commit_include_externals'.

(list_include_externals): New test.

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

'commit_include_externals'.

Patch by: Vijayaguru G <vijay{_AT_}collab.net>

Review by: stsp

julianfoad

  1. … 7 more files in changeset.
Make the --no-ignore and --no-auto-props options disregard the

svn:global-ignores and svn:auto-props properties respectively.

As per the discussion here

http://svn.haxx.se/dev/archive-2012-11/0155.shtml

* subversion/include/svn_client.h

(svn_client_add5): New.

(svn_client_add4): Deprecated.

(svn_client_import5): Add an argument tracking the --no-auto-props option.

* subversion/libsvn_client/add.c

*** Note from the future: Not all The functionality promised

by this commit was made in this change. Specifically,

'svn add --no-ignore' does not disregard svn:global-ignores.

This we rectified in r1418017. ***

(svn_client__get_paths_auto_props): Allow for null AUTOPROPS argument.

(add_file): Add a new argument NO_AUTOPORPS signaling if we want to

consider autoprops or not and set applicable autoprops if we do.

(add_dir_recursive): Add a new argument NO_AUTOPORPS signaling if we

want to consider autoprops or not. Pass it along to recursive calls

and to add_file().

(add): Add a new argument NO_AUTOPORPS signaling if we want to consider

autoprops or not. Pass this arg to add_dir_recursive() and add_file().

(svn_client_add4): Revved to...

(svn_client_add5): ...this. Most of the change here is just the name

change of the POOL arg to SCRATCH_POOL. Functional bit is accepting

the new NO_AUTOPROPS arg and passing it down add().

(svn_client__make_local_parents): Replace call to svn_client_add4 with

svn_client_add5.

* subversion/libsvn_client/client.h

(svn_client__get_paths_auto_props): Better explain what this function does.

* subversion/libsvn_client/commit.c

(import_ctx_t): Note that the autoprops member may be null.

(get_filtered_children): Rename the 'mandatory_ignores' argument to

'global_ignores' since it isn't mandatory anymore. Also handle a null

value for this argument, which which claimed to do already but didn't.

(import_dir): Rename the 'mandatory_ignores' argument to 'global_ignores'.

Add a new argument tracking the --no-auto-props option. Don't grab

the runtime ignores every time we import a dir, rather let the caller

do it once and pass it in as part of the global_ignores.

(import_children): Rename the 'mandatory_ignores' argument to

'global_ignores'. Add a new argument tracking the --no-auto-props

option.

(import): Same as import_dir. Also account for the change to

get_filtered_children.

(svn_client_import5): Add the aforementioned new argument. Either get all

ignores/autoprops or none, as per the --no-ignore and --no-auto-props

options.

* subversion/libsvn_client/deprecated.c

(svn_client_add4): New wrapper around svn_client_add5.

* subversion/svn/add-cmd.c

(svn_cl__add): Use svn_client_add5 instead of svn_client_add4, passing

along the new arg tracking the --no-auto-props option.

* subversion/svn/import-cmd.c

(svn_cl__import): Pass along the new arg tracking the --no-auto-props

option.

* subversion/svn/main.c

(svn_cl__options): Tweak help text for --no-ignore option.

* subversion/tests/cmdline/autoprop_tests.py

(check_inheritable_autoprops,

inheritable_autoprops_test): Adjust to reflect new behavior; we might

have all types of autoprops, just svn:auto-props, or no autoprops at all.

(svn_prop_inheritable_autoprops_add_versioned_target): Expand test to

cover some new scenarios.

* subversion/tests/cmdline/import_tests.py

(import_inherited_ignores): Fix a mistake where a path name pointed to a

non-existent file in the import_tests_data import tree -- this wasn't a

problem with the old behavior because this path was never referenced.

Adjust the test expectations to agree with the new behavior.

* subversion/tests/libsvn_client/client-test.c

(test_16k_add): Use latest version of svn_client_add*

  1. … 10 more files in changeset.
Silence signedness mismatch in overflow checks.

* subversion/libsvn_client/deprecated.c

(info_from_info2): fix signedness mismatch in overflow check

* subversion/libsvn_delta/svndiff.c

(write_handler,

read_window_header): ditto

  1. … 1 more file in changeset.
Merge the inheritable-props branch back to trunk.

See http://svn.haxx.se/dev/archive-2012-09/0177.shtml

  1. … 68 more files in changeset.
Forbid WC->WC moves of mixed-revision subtrees by default.

The reasoning behind this is that conflicts involving mixed-revision moves

are harder to resolve than conflicts involving single-revision moves.

Subversion does not yet support interactive resolution of tree conflicts,

and it is not yet clear whether this feature will be available in 1.8.

We will need to handle mixed-revision moves as part of interactive tree

conflict resolution eventually, but until that is the case refusing to

create mixed-revision moves will help users avoid unnecessary conflicts

that need to be resolved manually.

The API is fully backwards compatible and will allow mixed-revision moves

by default unless a new-in-1.8 interface is used.

The --allow-mixed-revision option has been added to 'svn move' to allow

scripts written for Subversion <= 1.7 to run with minor modifications.

The same was done for 'svn merge' in 1.7 and nobody complained, so this

approach seems viable.

* subversion/include/private/svn_wc_private.h

(svn_wc__move2): Declare. Successor of svn_wc_move(), made private since

we've been slowly moving libsvn_wc APIs into the private API space since

the inception of wc-ng (the equivalent API functions at the libsvn_client

interface remain public).

* subversion/include/svn_client.h

(svn_client_move7): Declare.

(svn_client_move6): Deprecate.

* subversion/include/svn_error_codes.h

(SVN_ERR_WC_MIXED_REVISIONS): New error code.

* subversion/include/svn_wc.h

(svn_wc_move): Deprecate.

* subversion/libsvn_client/copy.c

(do_wc_to_wc_moves_with_locks1,

do_wc_to_wc_moves_with_locks2): Add allow_mixed_revisions parameter and

call svn_wc__move2().

(do_wc_to_wc_moves, try_copy): Add allow_mixed_revisions parameter.

(svn_client_copy6): Allow try_copy() to use mixed-revisions (this is

actually a no-op since is_move is FALSE).

(svn_client_move7): Bumped version of svn_client_move6(), with a new

allow_mixed_revisions parameter.

* subversion/libsvn_client/deprecated.c

(svn_client_move6): Implement as wrapper around svn_client_move7().

* subversion/libsvn_wc/copy.c

(copy_versioned_dir): Add allow_mixed_revisions parameter. If this parameter

is FALSE, reject attempts to move mixed-revision subtrees.

(copy_or_move): Add allow_mixed_revisions parameter.

(svn_wc_copy3): Allow copy_or_move() to use mixed revisions.

(svn_wc__move2): Bumped version of svn_wc_move(), and moved into the

private API namespace. Add allow_mixed_revisions parameter.

* subversion/libsvn_wc/deprecated.c

(svn_wc_move): Reimplement as wrapper around svn_wc__move2().

* subversion/svn/main.c

(svn_cl__cmd_table): Document new behaviour in 'svn help move' and add the

--allow-mixed-revisions option to 'svn move'.

* subversion/svn/move-cmd.c

(svn_cl__move): Call svn_client_move7().

  1. … 9 more files in changeset.