Checkout Tools
  • last updated 49 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Remove the scratch pool from svn_string_from_stream2(), for consistency with

svn_stringbuf_from_stream().

* subversion/include/svn_io.h,

subversion/libsvn_subr/stream.c

(svn_string_from_stream2): Remove the scratch scratch pool parameter. (It

wasn't used.)

* subversion/libsvn_fs_x/reps.c

(svn_fs_x__reps_add_base): Update a caller.

* subversion/libsvn_subr/deprecated.c

(svn_string_from_stream): Update a caller.

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

(svn_wc__read_entries_old): Update a caller.

* tools/dev/x509-parser.c

(get_der_cert_from_stream): Update a caller.

  1. … 5 more files in changeset.
Revv svn_string_from_stream() function and share implementation with

svn_stringbuf_from_stream().

Suggested by: julianf

* subversion/include/svn_io.h

(svn_string_from_stream2): New.

(svn_string_from_stream): Deprecate.

* subversion/libsvn_subr/stream.c

(svn_string_from_stream2): Revv from svn_string_from_stream(): add LEN_HINT

argument. Use svn_stringbuf_from_stream() as implementation.

* subversion/libsvn_subr/deprecated.c

(svn_string_from_stream): Call svn_string_from_stream2() with LEN_HINT=0.

* subversion/libsvn_fs_x/reps.c

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

* tools/dev/x509-parser.c

(svn_fs_x__reps_add_base, svn_wc__read_entries_old,

get_der_cert_from_stream): Use svn_string_from_stream2() with

LEN_HINT=SVN__STREAM_CHUNK_SIZE. It doesn't increase memory usage because

we use same pool for SCRATCH and RESULT pool.

  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.
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.
Introduce a null-pointer constant that we can use as a termination sentinel

in variable argument lists. This avoids the ugliness of writing

"(char *) NULL" all over the place.

* subversion/include/svn_types.h (SVN_VA_NULL): New symbol.

* subversion/include/svn_dirent_uri.h (svn_dirent_join_many),

subversion/include/svn_path.h (svn_path_join_many),

subversion/include/svn_xml.h (svn_xml_make_open_tag):

Update docstrings, mentioning SVN_VA_NULL as the argument list terminator.

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

function calls with variable argument lists.

  1. … 89 more files in changeset.
* subversion/libsvn_wc/old-and-busted.c

(atts_to_entry): Following up on r1520529, fix variable reference.

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

(atts_to_entry): Canonicalize urls read from xml based entries files, just

like how we handle urls from the more recent entries files via read_url().

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.
Use svn_hash_gets and svn_hash_puts.

* subversion/libsvn_wc/adm_crawler.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_local.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/externals.c

* subversion/libsvn_wc/info.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

  1. … 19 more files in changeset.
* subversion/libsvn_wc/old-and-busted.c

(svn_wc__read_entries_old): Add missing svn_error_trace() call.

Fix / circumvent the last WCNG-related deprecation warnings:

Provide library-internal API variants with the same function

signature as the deprecated API.

Please note that due to the legacy API structure, there is no

acceptable way to prevent the internal use of deprecated API

in the implementation of those legacy API functions.

* subversion/libsvn_wc/lock.h

(svn_wc__adm_access_pool_internal): declare new internal API

* subversion/libsvn_wc/lock.c

(svn_wc__adm_access_pool_internal): implement it

* subversion/libsvn_wc/entries.h

(svn_wc__entries_read_internal): declare new internal API

* subversion/libsvn_wc/entries.c

(svn_wc__entries_read_internal): renamed from svn_wc_entries_read;

use new private API to access adm pool

(svn_wc_entries_read): call the above

(walker_helper): use new internal API

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

(svn_wc_entry): use new internal API

  1. … 4 more files in changeset.
More conversion warning elimination.

* subversion/libsvn_subr/skel.c

(estimate_unparsed_size): aggregate sizes in apr_size_t

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

(opt_revision_to_string): use the right conversion function

  1. … 1 more file in changeset.
Make these new APIs private: svn_uri_is_ancestor(), svn_relpath_is_ancestor().

* subversion/include/svn_dirent_uri.h,

subversion/libsvn_subr/dirent_uri.c

(svn_uri_is_ancestor): Rename to svn_uri__is_ancestor().

(svn_relpath_is_ancestor): Rename to svn_relpath__is_ancestor().

* Everywhere else: Adjust calls.

  1. … 20 more files in changeset.
Remove the unused pool argument from svn_relpath_is_canonical(). I can't

think of a reason why we are ever going to use that later with our

current definition of what is and isn't a valid relpath.

No functional changes.

* subversion/include/svn_dirent_uri.h

(svn_relpath_is_canonical): Remove argument.

* subversion/libsvn_subr/deprecated.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_subr/mergeinfo.c

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

* subversion/libsvn_wc/relocate.c

* subversion/libsvn_wc/util.c

* subversion/libsvn_wc/wc_db.c

* subversion/mod_dav_svn/util.c

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

(*): Update callers.

  1. … 9 more files in changeset.
Tighten variable scope in many locations.

Found by: Philipp Kloke <philipp.kloke@web.de>

* subversion/libsvn_diff/diff_file.c,

subversion/libsvn_subr/error.c,

subversion/libsvn_subr/opt.c,

subversion/libsvn_subr/dirent_uri.c,

subversion/libsvn_subr/deprecated.c,

subversion/libsvn_subr/io.c,

subversion/libsvn_ra_local/ra_plugin.c,

subversion/bindings/swig/perl/libsvn_swig_perl/swigutil_pl.c,

subversion/mod_dav_svn/reports/update.c,

subversion/tests/svn_test_main.c,

subversion/svndumpfilter/main.c,

subversion/libsvn_ra_svn/cyrus_auth.c,

subversion/libsvn_ra_svn/marshal.c,

subversion/svn/propdel-cmd.c,

subversion/svn/propget-cmd.c,

subversion/svn/log-cmd.c,

subversion/svn/propset-cmd.c,

subversion/svn/switch-cmd.c,

subversion/svn/proplist-cmd.c,

subversion/svn/propedit-cmd.c,

subversion/libsvn_fs_base/tree.c,

subversion/libsvn_fs_base/revs-txns.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/update_editor.c,

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

subversion/libsvn_wc/wc_db.c,

subversion/svnlook/main.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/patch.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_ra_neon/mergeinfo.c,

subversion/libsvn_ra_serf/mergeinfo.c,

subversion/libsvn_repos/reporter.c,

subversion/libsvn_repos/fs-wrap.c,

subversion/libsvn_repos/delta.c,

subversion/svnserve/serve.c:

Tighten variable scope.

  1. … 36 more files in changeset.
Ensure the correct type of NULL pointer is passed as a sentinel to the

variadic function apr_pstrcat().

Starting with version 4, gcc has been printing irritating warnings about

"missing sentinels in function call" for virtually every call to apr_pstrcat().

There is an issue about this in the APR bug tracker:

https://issues.apache.org/bugzilla/show_bug.cgi?id=47191

The fix proposed there is to include stddef.h in apr.h, in order to make

sure that NULL is defined as a pointer type, such as (void *)0.

Unfortunately, this doesn't work for all systems, since some (e.g. OpenBSD)

define NULL as 0L, rather than (void *)0.

So in spite of regrets about churn, I whipped up a sed script that changed

all places triggering the warning to use (char *)NULL instead of NULL as

sentinel, and adjusted the result to fix overlong lines and other minor

formatting issues. This fixes all current instances of the warning for me,

making it much easier to spot important warnings. No functional change.

* subversion/mod_authz_svn/mod_authz_svn.c

(get_access_conf, req_check_access, req_check_access): Use (char *)NULL

as sentinel for apr_pstrcat(), instead of NULL.

* subversion/libsvn_fs_base/lock.c

(svn_fs_base__generate_lock_token): Same.

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

(svn_fs_bdb__locks_get): Same.

* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__reparent): Same.

* subversion/libsvn_ra_svn/cyrus_auth.c

(try_auth, svn_ra_svn__get_addresses, svn_ra_svn__do_cyrus_auth): Same.

* subversion/libsvn_ra_svn/client.c

(ra_svn_get_locks): Same.

* subversion/mod_dav_svn/mirror.c

(static void proxy_request_fixup, dav_svn__proxy_request_fixup,

dav_svn__location_header_filter): Same.

* subversion/mod_dav_svn/reports/update.c

(malformed_element_error): Same.

* subversion/mod_dav_svn/reports/replay.c

(malformed_element_error): Same.

* subversion/mod_dav_svn/mod_dav_svn.c

(dav_svn__get_special_uri): Same.

* subversion/mod_dav_svn/lock.c

(svn_lock_to_dav_lock, unescape_xml): Same.

* subversion/mod_dav_svn/repos.c

(create_private_resource, get_parentpath_resource, get_resource,

deliver, do_walk, dav_svn__create_working_resource): Same.

* subversion/mod_dav_svn/version.c

(get_option): Same.

* subversion/libsvn_ra_neon/get_locks.c

(svn_ra_neon__get_locks): Same.

* subversion/libsvn_ra_neon/session.c

(svn_ra_neon__open): Same.

* subversion/libsvn_ra_neon/lock.c

(do_lock): Same.

* subversion/libsvn_ra_neon/props.c

(end_element, svn_ra_neon__get_props, svn_ra_neon__get_one_prop,

append_setprop): Same.

* subversion/libsvn_ra_neon/fetch.c

(add_props, filter_props, end_element): Same.

* subversion/libsvn_ra_serf/getlocks.c

(svn_ra_serf__get_locks): Same.

* subversion/libsvn_ra_serf/locks.c

(svn_ra_serf__unlock): Same.

* subversion/libsvn_ra_serf/update.c

(link_path): Same.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__open): Same.

* subversion/libsvn_ra_serf/property.c

(set_bare_props, svn_ra_serf__set_baton_props,

svn_ra_serf__set_baton_props): Same.

* subversion/libsvn_ra_serf/commit.c

(proppatch_walker, setup_proppatch_headers,

setup_put_headers, setup_delete_headers): Same.

* subversion/libsvn_fs_fs/caching.c

(svn_fs_fs__initialize_caches): Same.

* subversion/libsvn_fs_fs/lock.c

(svn_fs_fs__generate_lock_token): Same.

* subversion/libsvn_fs_fs/fs_fs.c

(path_txn_dir, path_txn_proto_rev, path_txn_proto_rev_lock,

path_txn_node_props, create_txn_dir, get_new_txn_node_id,

svn_fs_fs__reserve_copy_id, svn_fs_fs__set_uuid): Same.

* subversion/svn/notify.c

(notify): Same.

* subversion/svn/conflict-callbacks.c

(svn_cl__conflict_handler): Same.

* subversion/libsvn_subr/auth.c

(svn_auth_first_credentials): Same.

* subversion/libsvn_subr/checksum.c

(svn_checksum_serialize): Same.

* subversion/libsvn_subr/cache-memcache.c

(build_key): Same.

* subversion/libsvn_subr/log.c

(log_depth): Same.

* subversion/libsvn_subr/utf.c

(get_xlate_key, invalid_utf8): Same.

* subversion/libsvn_subr/opt.c

(svn_opt_format_option, svn_opt__args_to_target_array): Same.

* subversion/libsvn_subr/dirent_uri.c

(svn_uri_get_file_url_from_dirent): Same.

* subversion/libsvn_subr/sqlite.c

(internal_open): Same.

* subversion/tests/libsvn_ra_local/ra-local-test.c

(check_split_url): Same.

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

(print_chrevs): Same.

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

(substitute_and_verify): Same.

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

(test_text_retrieval, test_boolean_retrieval, test_has_section): Same.

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

(test_dirent_get_absolute): Same.

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

(condense_targets_tests_helper): Same.

* subversion/libsvn_wc/adm_files.c

(simple_extend): Same.

* subversion/libsvn_wc/update_editor.c

(create_tree_conflict): Same.

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

(svn_wc__serialize_file_external): Same.

* subversion/libsvn_wc/upgrade.c

(migrate_node_props): Same.

* subversion/libsvn_wc/wc_db.c

(construct_like_arg, wclock_obtain_cb): Same.

* subversion/libsvn_client/util.c

(svn_client__path_relative_to_root): Same.

* subversion/libsvn_client/info.c

(push_dir_info): Same.

* subversion/libsvn_client/mergeinfo.c

(svn_client__mergeinfo_from_segments): Same.

* subversion/libsvn_client/cmdline.c

(resolve_repos_relative_url, svn_client_args_to_target_array,

(svn_client_args_to_target_array): Same.

* subversion/libsvn_client/externals.c

(resolve_relative_external_url): Same.

* subversion/libsvn_client/patch.c

(copy_lines_to_target): Same.

* subversion/libsvn_repos/hooks.c

(check_hook_cmd): Same.

* subversion/libsvn_repos/rev_hunt.c

(svn_repos_trace_node_locations, svn_repos_node_location_segments): Same.

* subversion/libsvn_repos/authz.c

(authz_get_path_access, authz_get_tree_access,

authz_get_global_access): Same.

* subversion/libsvn_repos/reporter.c

(add_file_smartly): Same.

  1. … 57 more files in changeset.
Merge r985037, r985046, r995507 and r995603 from the performance branch.

These changes introduce the svn_stringbuf_appendbyte() function, which has

significantly less overhead than svn_stringbuf_appendbytes(), and can be

used in a number of places within our codebase.

r995507 is the removal of an extra function on the branch. This function

conflicted with previous revisions in the merge, and is itself no longer on

trunk.

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

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

order: output arguments before input arguments.

* subversion/include/svn_dirent_uri.h

(svn_dirent_split, svn_relpath_split, svn_uri_split): Reorder arguments.

* subversion/libsvn_client/add.c

* subversion/libsvn_client/commit.c

* subversion/libsvn_client/copy.c

* subversion/libsvn_client/delete.c

* subversion/libsvn_client/diff.c

* subversion/libsvn_client/externals.c

* subversion/libsvn_client/info.c

* subversion/libsvn_client/list.c

* subversion/libsvn_client/locking_commands.c

* subversion/libsvn_client/update.c

* subversion/libsvn_delta/path_driver.c

* subversion/libsvn_subr/dirent_uri.c

* subversion/libsvn_wc/adm_crawler.c

* subversion/libsvn_wc/adm_files.c

* subversion/libsvn_wc/adm_ops.c

* subversion/libsvn_wc/copy.c

* subversion/libsvn_wc/diff.c

* subversion/libsvn_wc/entries.c

* subversion/libsvn_wc/lock.c

* subversion/libsvn_wc/merge.c

* subversion/libsvn_wc/node.c

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

* subversion/libsvn_wc/props.c

* subversion/libsvn_wc/update_editor.c

* subversion/libsvn_wc/wc_db.c

* subversion/libsvn_wc/wc_db_pdh.c

* subversion/mod_dav_svn/repos.c

* subversion/svn/util.c

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

(*): Update callers.

  1. … 29 more files in changeset.
Following up on r953617, remove the support of setting the conflict marker

file locations via entry modify.

* subversion/libsvn_wc/entries.c

(fold_entry): Remove conflict marker handling.

* subversion/libsvn_wc/entries.h

(SVN_WC__ENTRY_ATTR_CONFLICT_OLD,

SVN_WC__ENTRY_ATTR_CONFLICT_NEW,

SVN_WC__ENTRY_ATTR_CONFLICT_WRK,

SVN_WC__ENTRY_ATTR_PREJFILE): Move to old-and-busted.c

(SVN_WC__ENTRY_MODIFY_CONFLICT_OLD,

SVN_WC__ENTRY_MODIFY_CONFLICT_NEW,

SVN_WC__ENTRY_MODIFY_CONFLICT_WRK,

SVN_WC__ENTRY_MODIFY_PREJFILE): Remove defines.

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

(ENTRIES_ATTR_CONFLICT_OLD, ENTRIES_ATTR_CONFLICT_NEW,

ENTRIES_ATTR_CONFLICT_WRK, ENTRIES_ATTR_PREJFILE):

New defines based on values in entries.h

(extract_string_normalize): Remove unused modify flags support.

(atts_to_entry): Remove modify flags support, use new defines and

update caller.

(handle_start_tag): Update caller.

  1. … 2 more files in changeset.
Remove the loggy entry modification system as it is no longer being used.

since r953617.

* subversion/libsvn_wc/entries.h

(svn_wc__atts_to_entry): Remove function from public view.

* subversion/libsvn_wc/log.c

(SVN_WC__LOG_MODIFY_ENTRY): Remove define.

(log_do_modify_entry): Remove function.

(start_handler): Remove modify entry support.

(svn_wc__loggy_entry_modify): Remove function.

* subversion/libsvn_wc/log.h

(svn_wc__loggy_entry_modify): Remove function.

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

(svn_wc__atts_to_entry): Rename function to ...

(atts_to_entry): ... this and make static.

(handle_start_tag): Update caller.

  1. … 3 more files in changeset.
Introduce OP_RECORD_FILEINFO, which allows us to strip out two loggy

operations and a bunch of hacky sorta-loggy_modify_entry code. The fallout

also moves a few more things into old-and-busted, which also gets

simplified because it doesn't have to track the special attr values.

* subversion/libsvn_wc/workqueue.h:

(svn_wc__wq_build_record_fileinfo): new operation

* subversion/libsvn_wc/workqueue.c:

(OP_RECORD_FILEINFO): new operation

(get_and_record_fileinfo): new helper, with guts from run_file_install.

added ability to ignore missing files.

(run_file_install): shift code to get_and_record_fileinfo and call it

(run_record_fileinfo): simple operation to call get_and_record_fileinfo

(svn_wc__wq_build_record_fileinfo): new function to build

OP_RECORD_FILEINFO work items

(dispatch_table): add OP_RECORD_FILEINFO and its handler

* subversion/libsvn_wc/update_editor.c:

(merge_file): remove calls to two loggy functions and queue an

OP_RECORD_FILEINFO instead. leave some comments here. the exact

conditions around this code are quite sketchy/unclear.

* subversion/libsvn_wc/log.h:

(svn_wc__loggy_set_entry_timestamp_from_wc): removed

(svn_wc__loggy_set_entry_working_size_from_wc): removed

* subversion/libsvn_wc/log.c:

(svn_wc__loggy_set_entry_timestamp_from_wc): removed

(svn_wc__loggy_set_entry_working_size_from_wc): removed

(log_do_modify_entry): without the special attribute values, this

function can be dramatically simplified.

* subversion/libsvn_wc/entries.h:

(SVN_WC__ENTRY_ATTR_TEXT_TIME, SVN_WC__ENTRY_ATTR_WORKING_SIZE): no

longer used after the log.c changes. moved to old-and-busted.c

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

(ENTRIES_ATTR_WORKING_SIZE, ENTRIES_ATTR_TEXT_TIME): moved here from

entries.h, and renamed

(svn_wc__atts_to_entry): remove special values from the text time and

working size attributes. and these no longer need to set MODIFY_FLAGS.

* subversion/libsvn_wc/wc.h:

(SVN_WC__TIMESTAMP_WC, SVN_WC__WORKING_SIZE_WC): these special values

are no longer used.

  1. … 7 more files in changeset.
As a consequence of r942851, much of loggy_entry_modify() can go away.

This also shifts-to/simplifies a bunch code in old-and-busted.

* subversion/libsvn_wc/log.c:

(svn_wc__loggy_entry_modify): remove a bunch of attribute setup. remove

a bunch of flags from the assertion, thus disallowing most flags.

* subversion/libsvn_wc/entries.h:

(SVN_WC__ENTRIES_ATTR_FILE_STR, SVN_WC__ENTRIES_ATTR_DIR_STR,

SVN_WC__ENTRY_VALUE_ADD, SVN_WC__ENTRY_VALUE_DELETE,

SVN_WC__ENTRY_VALUE_REPLACE): shifted to old-and-busted as

ENTRIES_VALUE_* symbols.

(SVN_WC__ENTRY_ATTR_KIND, SVN_WC__ENTRY_ATTR_CHECKSUM,

SVN_WC__ENTRY_ATTR_SCHEDULE, SVN_WC__ENTRY_ATTR_COPIED,

SVN_WC__ENTRY_ATTR_COPYFROM_URL, SVN_WC__ENTRY_ATTR_COPYFROM_REV):

shifted to old-and-busted as ENTRIES_ATTR_* symbols

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

(ENTRIES_ATTR_KIND, ENTRIES_ATTR_SCHEDULE, ENTRIES_ATTR_COPIED,

ENTRIES_ATTR_COPYFROM_URL, ENTRIES_ATTR_COPYFROM_REV,

ENTRIES_ATTR_CHECKSUM, ENTRIES_VALUE_FILE, ENTRIES_VALUE_DIR,

ENTRIES_VALUE_ADD, ENTRIES_VALUE_DELETE, ENTRIES_VALUE_REPLACE):

moved here from entries.h

(read_entry): track symbol renames

(do_bool_attr): this function no longer needs to set MODIFY_FLAGS. also

remove the MODIFY_FLAG param and update docstring

(extract_string): this function no longer needs to set MODIFY_FLAGS, and

the NORMALIZE functionality is removed (to extract_string_normalize).

also rip out the FLAG param.

(extract_string_normalize): just like the original extract_string, but

with hard-coded normalizing functionality.

(svn_wc__atts_to_entry): track a bunch of symbol renames. remove

MODIFY_FLAGS handling from all do_bool_attr() and extract_string()

calls. for the four places using MODIFY_FLAGS (conflict file stuff),

they also normalize them, so switch to extract_string_normalize().

  1. … 2 more files in changeset.
Clean up a bunch fo entry modification stuff. In particular, constify the

structure used to provide values (tmp_entry.schedule used to be an OUT

parameter in certain cases), and renumber the flag values down into a

simple integer's range (these numbers are not persisted, so this is okay).

* subversion/libsvn_wc/entries.h:

(svn_wc__atts_to_entry): change MODIFY_FLAGS to 'int'

(SVN_WC__ENTRY_MODIFY_*): renumbered into 'int' range

(svn_wc__entry_modify, svn_wc__entry_modify_stub): change MODIFY_FLAGS

to 'int' and constify ENTRY.

* subversion/libsvn_wc/entries.c:

(fold_entry): change MODIFY_FLAGS to 'int'. skip setting schedule,

deferring to the caller for this. use CUR_ENTRY to get the "new"

schedule for a couple entry structure cleanups

(fold_scheduling): remove DELETE_ENTRY param, and let the caller handle

the singular case where this occurs. remove SCRATCH_POOL, as we never

used it. assert that we never attempt to move into sched-replace (the

only code which tries this uses FORCE, so fold_scheduling is not

called). clean up style of the error returns. surface another error

condition up out of the nested switches, to sit with the other error

results. unwind the nested switches into simple if-conditions and

clean up some of the commentary.

(entry_modify): constify ENTRY_MODS and change MODIFY_FLAGS to 'int'.

tweak how we handle schedule changes. detect the case for removing the

entry, rather than letting fold_scheduling tell us.

(svn_wc__entry_modify, svn_wc__entry_modify_stub): change MODIFY_FLAGS

to 'int' and constify ENTRY.

* subversion/libsvn_wc/adm_ops.c:

(svn_wc_add4): change MODIFY_FLAGS to 'int'. move the TMP_ENTRY

assignments near their MODIFY_FLAGS keys.

* subversion/libsvn_wc/copy.c:

(post_copy_cleanup): rename FLAGS to MODIFY_FLAGS and make it an 'int'

* subversion/libsvn_wc/log.c:

(log_do_modify_entry): change MODIFY_FLAGS to 'int'

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

(do_bool_attr): change MODIFY_FLAGS and MODIFY_FLAG params to 'int'

(extract_string): change MODIFY_FLAGS and FLAG params to 'int'

(handle_start_tag): change MODIFY_FLAGS to 'int'

* subversion/libsvn_wc/update_editor.c:

(add_directory): change MODIFY_FLAGS var to 'int' and do some simple

reformatting.

(svn_wc_add_repos_file4): change MODIFY_FLAGS var to 'int'

  1. … 7 more files in changeset.
Delineate exactly which entry fields may be modified by

svn_wc__loggy_entry_modify. Remove support for fields no longer modified

this way, which then affects svn_wc__atts_to_entry. Clarify within

old-and-busted.c the attributes supported only for old entries support,

and (no longer) used for loggy-based entry modification.

* subversion/libsvn_wc/log.c:

(SVN_WC__LOG_ATTR_REVISION, SVN_WC__LOG_ATTR_KIND): two new attribute

names for use by SVN_WC__LOG_DELETE_ENTRY. we used to use

...ENTRY_ATTR_*, but those will/may go away.

(SVN_WC__LOG_ATTR_FORCE): no longer used

(log_do_modify_entry): stop parsing the FORCE flag. it is not used by

the loggy entry modification

(start_handler, svn_wc__loggy_delete_entry): rename the symbols used for

attributes of the LOG_DELETE_ENTRY operation.

(svn_wc__loggy_entry_modify): add some guard conditions about the

MODIFY_FLAGS value. remove kind_str and schedule_str, and assert their

singular value from their one call-point. remove consideration for

REVISION, URL, DELETED, ABSENT, and FORCE. add lots of assertions

about incoming data to clarify what this function is working with.

adjust logic for COPIED, CONFLICT_OLD, CONFLICT_NEW, and PREJFILE to

consider their only values when provided.

* subversion/libsvn_wc/entries.h:

(SVN_WC__ENTRY_ATTR_NAME, SVN_WC__ENTRY_ATTR_REVISION,

SVN_WC__ENTRY_ATTR_URL, SVN_WC__ENTRY_ATTR_DELETED,

SVN_WC__ENTRY_ATTR_ABSENT, SVN_WC__ENTRY_ATTR_CMT_REV,

SVN_WC__ENTRY_ATTR_CMT_DATE, SVN_WC__ENTRY_ATTR_CMT_AUTHOR):

removed. these are no longer used generally. new symbols have been

created within old-and-busted.c to support reading old xml-based

entries files.

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

(ENTRIES_ATTR_NAME, ENTRIES_ATTR_DELETED, ENTRIES_ATTR_ABSENT,

ENTRIES_ATTR_CMT_REV, ENTRIES_ATTR_CMT_DATE,

ENTRIES_ATTR_CMT_AUTHOR, ENTRIES_ATTR_REVISION, ENTRIES_ATTR_URL):

new symbols, taking the place of the SVN_WC__ENTRY_* symbols. these

define the attribute names used in the (very) old-style XML entries

(do_bool_attr): allow NULL for the MODIFY_FLAGS param

(extract_string): rename RESULT_FLAGS to the standard MODIFY_FLAGS name,

and allow it to be NULL.

(svn_wc__atts_to_entry): update docstring to note the current use and

eventual demise of MODIFY_FLAGS. rename various SVN_WC__ENTRY_*

symbols to their new ENTRIES_* equivalents. no longer set flags for

REVISION, URL, DELETED, and ABSENT. update the inline comments to this

effect. update all existing comments about MODIFY_FLAGS. adjust calls

to extract_string() and do_bool_attr() to pass NULL for MODIFY_FLAGS

  1. … 2 more files in changeset.
Revamp the old svn_wc_entry() to get entries from the cached hash of

entries, in order to follow the docstring. The (replaced) algorithm using

svn_wc__get_entry() will soon follow different pool lifetime guides which

will not use the entries cache. Thus, it would break svn_wc_entry's

guarantees about pool usage.

Add a new test to track these lifetime guarantees and baton usage.

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

(svn_wc_entry): rebuild this similar to the logic used by 1.6.x, but

using some wc-ng stuffs to reach access batons.

* subversion/tests/libsvn_wc/entries-compat.c:

(M_TESTING_DATA): our new test requires a second .svn metadata area, and

this content will be loaded.

(make_one_db): new function comprised of the guts of create_fake_wc.

(create_fake_wc): shift content out to make_one_db, and then use that to

create two metadata areas for the tests.

(test_stubs): new testing function to verify interaction of the access

batons, the entries hash, and the svn_wc_entry() return values.

(test_funcs): add new test

  1. … 1 more file in changeset.
In a response to issue #3601 and as followup of the dirent/uri work

make svn_uri_canonicalize() normalize the escaping of characters in

uris that start with a schema (read: urls). This makes the uris a bit

'more canonical'.

I think some of this code might use a bit more optimization, but this at

least switches the functions to the intended behavior. The RFCs and our

current code use upper case characters when encoding characters so I

decided to make that the canonical format. (The mailinglist thread on

http://svn.haxx.se/dev/archive-2010-02/0564.shtml suggest converting to

lower case).

* subversion/include/svn_dirent_uri.h

(svn_uri_canonicalize): Update documentation.

* subversion/libsvn_subr/dirent_uri.c

(includes): Add apr_lib.h and dirent_uri.h.

(canonicalize): Add a normalization of characters step.

(svn_uri_is_canonical): Verify character normalization

* subversion/libsvn_subr/dirent_uri.h

New file.

(svn_uri__char_validity):

Make uri_char_validity from path.c usable in other files in

the same library.

* subversion/libsvn_subr/path.c

(uri_char_validity): Rename to ...

(svn_uri__char_validity): ... and remove static to make it usable

from dirent_uri.c

(svn_path_is_uri_safe, svn_path_uri_encode,

svn_path_url_add_component2): Update users of uri_char_validity.

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

(read_url): Always recanonicalize the uri; not just pre 1.6 versions.

* subversion/tests/cmdline/svntest/main.py

(pathname2url): Make the url used for file:/// tests on Windows canonical

following our new rules. (It used '%3A' instead of ':')

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

(test_uri_canonicalize,

test_uri_is_canonical): Extend test with some canonicalization tests.

  1. … 6 more files in changeset.
Cosmetic: indents and line wraps, else-ifs.

* subversion/libsvn_client/export.c (copy_one_versioned_file): Line width wrap.

* subversion/libsvn_client/merge.c (merge_file_changed): Else-if wrap/indent.

* subversion/libsvn_wc/adm_crawler.c

(svn_wc__internal_transmit_text_deltas): Indent.

* subversion/libsvn_wc/adm_ops.c (svn_wc__get_pristine_contents): Else-if wrap.

* subversion/libsvn_wc/old-and-busted.c (read_url): Else-if wrap/indent.

* subversion/libsvn_wc/questions.c (svn_wc__internal_text_modified_p): Indent.

* subversion/libsvn_wc/update_editor.c (check_tree_conflict): Else-if wrap.

* subversion/svnlook/main.c (do_plist): Else-if wrap/indent.

* subversion/svn/propset-cmd.c (svn_cl__propset): Else-if wrap/indent.

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

(prop_validation_commit_with_revprop, prop_validation): Else-if wrap/indent.

  1. … 9 more files in changeset.
Make our standin apr hash retrieval functions private, and note that in both

the function name and header file.

* subversion/include/svn_types.h,

subversion/libsvn_subr/iter.c

(svn_apr_hash_index_key): Renamed to...

(svn__apr_hash_index_key): ...this.

(svn_apr_hash_index_klen, svn__apr_hash_index_klen): Same.

(svn_apr_hash_index_val, svn__apr_hash_index_val): Same.

* subversion/libsvn_ra/ra_loader.c,

subversion/libsvn_subr/mergeinfo.c,

subversion/tests/libsvn_wc/tree-conflict-data-test.c,

subversion/svndumpfilter/main.c,

subversion/svn/props.c,

subversion/svn/propget-cmd.c,

subversion/svn/log-cmd.c,

subversion/svn/status-cmd.c,

subversion/svnadmin/main.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/lock.c,

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

subversion/libsvn_wc/tree_conflicts.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/copy.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_client/externals.c,

subversion/libsvn_client/util.c,

subversion/libsvn_client/repos_diff.c,

subversion/libsvn_client/export.c,

subversion/libsvn_client/info.c,

subversion/libsvn_client/merge.c,

subversion/libsvn_client/prop_commands.c,

subversion/libsvn_client/ra.c,

subversion/libsvn_client/locking_commands.c,

subversion/libsvn_client/diff.c,

subversion/libsvn_client/mergeinfo.c,

subversion/libsvn_client/commit_util.c,

subversion/libsvn_client/add.c,

subversion/libsvn_client/commit.c,

subversion/svnlook/main.c,

subversion/svnsync/main.c,

subversion/svnsync/sync.c,

subversion/libsvn_repos/reporter.c,

subversion/svnserve/serve.c,

subversion/libsvn_fs_fs/tree.c,

subversion/libsvn_fs_fs/fs_fs.c,

subversion/libsvn_fs_fs/lock.c,

subversion/libsvn_fs_fs/dag.c,

subversion/libsvn_fs_fs/caching.c:

Update callers throughout.

  1. … 44 more files in changeset.
Add empty doc strings to the 141 static functions in libsvn_wc that didn't

have one. Why? To make me feel worse. But really, to give a tiny extra

visual cue that might encourage any passing programmer to write something in

it. This distinguishes them from non-static functions, which don't have a

doc string at their definition because it's at their declaration. Did I

make an exception for functions whose purpose is "so obvious that they don't

need one"? No.

* subversion/libsvn_wc/adm_crawler.c,

subversion/libsvn_wc/adm_files.c,

subversion/libsvn_wc/adm_ops.c,

subversion/libsvn_wc/ambient_depth_filter_editor.c,

subversion/libsvn_wc/conflicts.c,

subversion/libsvn_wc/deprecated.c,

subversion/libsvn_wc/entries.c,

subversion/libsvn_wc/lock.c,

subversion/libsvn_wc/log.c,

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

subversion/libsvn_wc/props.c,

subversion/libsvn_wc/relocate.c,

subversion/libsvn_wc/status.c,

subversion/libsvn_wc/translate.c,

subversion/libsvn_wc/tree_conflicts.c,

subversion/libsvn_wc/update_editor.c,

subversion/libsvn_wc/upgrade.c,

subversion/libsvn_wc/wc_db.c,

subversion/libsvn_wc/workqueue.c

Add empty doc strings.

  1. … 18 more files in changeset.
Update the last change information (before WC-NG known as entry properties)

directly in WC-DB instead of via entry updates. This allows keeping track of

these values a bit longer than before, as the next entry_write() might remove

some details.

Like many similar updates this moves some loggy operations to using the database

directly, which might introduce some issues if you happen to press ^C in the

wrong place. The only solution that completely resolve this will be to update

BASE_NODE in one step, which is planned before 1.7.

This fixes one specific merge scenario that now properly detects that the

sub-replacement is done via the parent instead of directly. (The commit of

merge_tests#34 doesn't record a separate replacement now.)

* subversion/libsvn_wc/entries.c

(fold_entry): Stop updating last_change information.

* subversion/libsvn_wc/entries.h

(SVN_WC__ENTRY_MODIFY_CMT_REV,

SVN_WC__ENTRY_MODIFY_CMT_DATE,

SVN_WC__ENTRY_MODIFY_CMT_AUTHOR): Remove now unused values.

* subversion/libsvn_wc/log.c

(log_do_modify_entry): Remove early WC-NG hack, which unset .deleted on

updating last change information.

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

(svn_wc__atts_to_entry): Remove uses of SVN_WC__ENTRY_MODIFY_CMT_AUTHOR.

* subversion/libsvn_wc/update_editor.c

(last_change_info): New struct.

(accumulate_entry_props): Rename to ...

(accumulate_last_change): ... this and collect the information in

a last_change_info struct instead of writing a loggy operations.

Reorder arguments to match new standard.

(close_directory): Collect last_change_info and if available write

it to BASE_NODE in the final update step.

(merge_props,

merge_file): Collect last_change_info and pass to caller.

(close_file): Collect last_chanhe_info and write it to BASE_NODE

if available. Unset entry.deleted when we are adding a new node.

(install_added_props): Collect last_change_info and pass it to caller.

(svn_wc_add_repos_file4): If last_change info is provided write it to

WORKING_NODE.

* subversion/libsvn_wc/wc-queries.sql

(STMT_UPDATE_BASE_LAST_CHANGE,

STMT_UPDATE_WORKING_LAST_CHANGE): New query.

* subversion/libsvn_wc/wc_db.c

(svn_wc__db_temp_op_set_base_last_change,

svn_wc__db_temp_op_set_working_last_change): New function.

* subversion/libsvn_wc/wc_db.h

(svn_wc__db_temp_op_set_base_last_change,

svn_wc__db_temp_op_set_working_last_change): New function.

  1. … 7 more files in changeset.