Checkout Tools
  • last updated 7 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Follow up to r1851268: our coding guidelines say that output parameters

should come first in the function argument list.

* subversion/include/svn_client.h

(svn_client_blame6): Move start_revnum_p and end_revnum_p to the

beginning of the argument list and update the docstring to say that

either of these may be NULL.

* subversion/libsvn_client/blame.c

(svn_client_blame6): Update signature.

* subversion/svn/blame-cmd.c (svn_cl__blame),

subversion/libsvn_client/deprecated.c (svn_client_blame5),

subversion/bindings/javahl/native/SVNClient.cpp (SVNClient::blame):

Update all callers.

  1. … 4 more files in changeset.
Move misplaced parameters out of the blame callback.

Part 2 of a commit started in r1851265.

* subversion/include/svn_client.h,

subversion/libsvn_client/blame.c

(svn_client_blame6): Move the start/end parameters from

svn_client_blame_receiver4_t to svn_client_blame6().

* subversion/libsvn_client/deprecated.c

(blame_receiver_wrapper_baton3,

blame_wrapper_receiver3,

svn_client_blame5): Adjust the compatibility wrapper.

  1. … 2 more files in changeset.
Extend the blame callback with a string length parameter.

* subversion/incluce/svn_client.h

* subversion/libsvn_client/blame.c

(svn_client_blame_receiver4_t): typedef for new callback

(svn_client_blame6): new API using the svn_client_blame_receiver4_t callback

* subversion/libsvn_client/deprecated.c

(svn_client_blame5): moved API there, calling svn_client_blame6 using a

callback shim

(blame_wrapper_receiver3): callback shim for svn_client_blame5

  1. … 2 more files in changeset.
Update issue tracker links in comments, from Tigris (issuezilla) to Apache (Jira).

URL fragment identifiers like '#desc5' are left in place, not yet updated.

This is a merge of r1828508 from the 'shelve-checkpoint' branch where I

committed it by mistake.

  1. … 43 more files in changeset.
Add an option to the 'revert' APIs to choose whether to delete or keep a

schedule-add file or directory.

Previously reverting a copied (add-with-history) file or directory would

delete it, while reverting a plain add would keep it on disk.

* subversion/include/svn_client.h,

subversion/libsvn_client/deprecated.c,

subversion/libsvn_client/revert.c

(svn_client_revert4): New, revved with a new option 'added_keep_local'.

(svn_client_revert3): Deprecated.

(revert_with_write_lock_baton,

revert): Pass the new option along.

* subversion/include/svn_wc.h,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/revert.c

(svn_wc_revert6): New, revved with a new option 'added_keep_local'.

(svn_wc_revert5): Deprecated.

(revert_restore):

(revert_wc_data): Allow deleting an on-disk item even in cases (such as a

plain add) where its new metadata status is 'not present'.

(revert,

revert_changelist,

revert_partial): Pass the new option along.

  1. … 5 more files in changeset.
Expose the 'pretty_print_mergeinfo' flag of svn_diff__display_prop_diffs()

up through higher APIs.

Partly because disabling that should help me produce patches that are

compatible with 'svn patch'. Partly because it's the Right Thing to do.

* subversion/include/svn_client.h

subversion/libsvn_client/deprecated.c

(svn_client_diff7,

svn_client_diff_peg7): New, adding a 'pretty_print_mergeinfo' parameter.

(svn_client_diff6,

svn_client_diff_peg6): Deprecate.

* subversion/libsvn_client/diff.c

(display_prop_diffs,

diff_writer_info_t,

diff_props_changed): Take and pass on 'pretty_print_mergeinfo' parameter.

(svn_client_diff7,

svn_client_diff_peg7): Rename from '...6'. Take and pass on a

'pretty_print_mergeinfo' parameter.

* subversion/svn/diff-cmd.c

(svn_cl__diff): Use new API, passing TRUE for 'pretty_print_mergeinfo'.

  1. … 3 more files in changeset.
Change the svn_*_list APIs to use NULL as the "don't filter by pattern"

parameter instead of an empty pattern list.

Suggested by: Patrick Steinhardt (patrick.steinhardt at elegosoft.com)

* subversion/include/svn_repos.h

(svn_repos_list): Document the new PATTERN options behavior.

* subversion/libsvn_repos/list.c

(matches_any): Implement the new behavior.

(svn_repos_list): Empty lists will almost always be created by dumb

scripts. It's probably a good idea to explicitly

not waste any resources in the degenerate case.

* subversion/include/svn_ra.h

(svn_ra_list): Document the new PATTERN options behavior.

* subversion/libsvn_ra_svn/protocol

(3.1.1. Main Command Set): The patterns list in the list command is

now optional.

* subversion/libsvn_subr/log.c

(svn_log__list): Make the logging cope with NULL pattern lists.

* subversion/svnserve/serve.c

(list): Receive NULL for PATTERNS, if no list was received.

* subversion/libsvn_ra_svn/client.c

(ra_svn_list): Omit the pattern list entirely, if patterns is NULL.

* subversion/include/svn_client.h

(svn_client_list4): Document the new PATTERN options behavior.

(svn_client_list3): Update docstring.

* subversion/libsvn_client/deprecated.c

(svn_client_list3): Update implementation.

* subversion/libsvn_client/list.c

(match_patterns): Implement the new behavior.

(list_internal): Update docstring.

* subversion/svn/list-cmd.c

(svn_cl__list): If no patterns were specified, pass NULL to the API.

* subversion/svnbench/null-list-cmd.c

(svn_cl__null_list): Same.

  1. … 11 more files in changeset.
Add support for the "--search" option to the 'list' command down to the

svn_client level. Provide a simple test for it.

* subversion/include/svn_client.h

(svn_client_list4): Rev API, adding the PATTERNS parameter.

(svn_client_list3): Deprecate.

* subversion/libsvn_client/deprecated.c

(svn_client_list3): Implement the deprecated API in terms of the new one.

* subversion/libsvn_client/list.c

(match_patterns): New utility function handling the pattern matching.

(get_dir_contents,

list_internal): Add PATTERNS parameter and filter outout accordingly.

(list_external_items,

list_externals): Add PATTERNS parameter and pass it along.

(svn_client_list4): Bump signature and pass parameters on.

* subversion/svn/list-cmd.c

(svn_cl__list): Gather the --search patterns and pass them to the rev'ed

client API.

* subversion/svn/svn.c

(svn_cl__cmd_table): Enabled the '--search' option for 'list'.

* subversion/tests/cmdline/list_tests.py

(list_filtered): New test.

(test_list): Register the new test.

  1. … 5 more files in changeset.
Expose the metadataOnly option that is already implemented in libsvn_client's

copy support through the api.

This should have been added when revving the api, as this api has been

available at the libsvn_wc level since 1.8 (and at least used by AnkhSVN

since then).

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

(Java_org_apache_subversion_javahl_SVNClient_copy): Pass metadataOnly.

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

(SVNClient::copy): Pass metadataOnly.

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

(SVNClient::copy): Pass metadataOnly.

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

(copy): Add and document metadataOnly argument.

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

(copy): Add and document metadataOnly argument.

(copy): Update caller.

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

(testCopy,

testCopyPinExternals_wc2wc,

testCopyPinExternals_wc2repo,

testCopyPinExternals_repo2wc,

testCopyPinExternals_repo2repo,

testCopyPinExternals_repo2repo_explicit,

setupAndPerformMerge): Update caller.

* subversion/include/svn_client.h

(svn_client_copy7): Add argument.

* subversion/libsvn_client/copy.c

(svn_client_copy7): Add argument. Update caller.

* subversion/libsvn_client/deprecated.c

(svn_client_copy6): Update caller.

* subversion/svn/copy-cmd.c

(svn_cl__copy): Update caller.

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

(test_copy_pin_externals): Update caller.

* subversion/tests/libsvn_wc/utils.c

(sbox_wc_copy_url): Update caller.

  1. … 11 more files in changeset.
Merge the pin-externals branch to trunk.

The discussion thread start in this post:

http://mail-archives.apache.org/mod_mbox/subversion-dev/201501.mbox/%3C20150128095434.GM26869%40ted.stsp.name%3E

has come to a consensus that the branch can be merged and additional

development of this feature can happen on trunk.

This merge adds a '--pin-externals' option to 'svn copy'.

This option enables automated pinning of URLs in svn:externals properties

during copy operations (issue #1258).

--pin-externals : pin externals with no explicit revision to their

last-changed revision (recommended when tagging)

This feature makes the svncopy.pl contrib script unnecessary.

Externals are "pinned" by adding a peg revision to the external's source URL.

For example, the external definition:

^/foo/bar ext_bar

might become:

^/foo/bar@400 ext_bar

This table shows which revision is used for pinning:

copy source: working copy (WC) REPOS

------------+------------------------+---------------------------+

copy WC | external's WC BASE rev | external's repos HEAD rev |

dest: |------------------------+---------------------------+

REPOS | external's WC BASE rev | external's repos HEAD rev |

------------+------------------------+---------------------------+

An external that is already pinned is left as-is.

Please see the branch log for details about these changes.

  1. … 22 more files in changeset.
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.