James McCoy

* STATUS:

Vote +1 on r1876410, approving.

Vote +1 on r1878413, approving.

Vote +1 on the r1878909 group, approving.

Vote +1 on r1879198, approving.

* docs/release-notes/index.html

(#release-notes-list): Add release date for 1.14

* STATUS: Nominate r1875602.
* STATUS: Nominate r1876068.
* build.conf

(libsvn_client): Add libsvn_shelf.h and libsvn_shelf2.h to msvc-export,

needed for the private symbols

* STATUS:

Vote +1 on r1875726.

Vote +1 on r1876054.

* STATUS:

Vote +1 on the r1876016 group, approving.

Vote +1 on r1876054.

* STATUS

Vote +1 on r1875918, approving.

Vote +1 on the r1875921 group, approving.

* STATUS: Nominate r1876020.
Fix Proc.new warnings in Ruby bindings with Ruby >= 2.7

Per Ruby 2.7's release notes[1], use the block-capturing syntax instead of

explicit Proc.new to resolve warnings like these in the Ruby SWIG APIs:

subversion/bindings/swig/ruby/svn/client.rb:640: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead

subversion/bindings/swig/ruby/svn/core.rb:258: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead

[1]: https://github.com/ruby/ruby/blob/v2_7_0/NEWS#proclambda-without-block-is-deprecated-

* subversion/bindings/swig/ruby/svn/client.rb:

(set_log_msg_func, set_log_msg_func2, set_notify_func, set_cancel_func):

Replace callback=Proc.new parameter with &callback

(def_init_callbacks): Remove explicit nil parameters to above functions,

leveraging deafaults

* subversion/bindings/swig/ruby/svn/core.rb:

(add_simple_prompt_provider, add_username_prompt_provider,

add_ssl_server_trust_prompt_provider, add_ssl_client_cert_prompt_provider,

add_ssl_client_cert_pw_prompt_provider): Replace prompt=Proc.new parameter

with &prompt

* build.conf

(fs-fs-private-test): Add libsvn_fs_fs to libs to fix link failure

Fix various typos detected by codespell

* CHANGES, INSTALL, build.conf, configure.ac,

notes/anchors_and_targets.txt, subversion/svn/cl.h,

subversion/svn/conflict-callbacks.c, subversion/svn/svn.c,

subversion/svn_private_config.hw,

subversion/svnbench/null-blame-cmd.c,

subversion/svnbench/svnbench.c,

subversion/svnfsfs/load-index-cmd.c,

subversion/svnlook/svnlook.c, subversion/svnserve/serve.c,

subversion/svnserve/server.h, subversion/svnserve/svnserve.c,

subversion/svnsync/sync.c:

(): Spelling fixes

Fix various typos detected by codespell

* libsvn_client/add.c, libsvn_client/blame.c, libsvn_client/commit_util.c,

libsvn_client/conflicts.c, libsvn_client/copy.c, libsvn_client/diff.c,

libsvn_client/export.c, libsvn_client/import.c, libsvn_client/merge.c,

libsvn_client/mergeinfo.c, libsvn_client/mergeinfo.h, libsvn_client/patch.c,

libsvn_client/switch.c, libsvn_client/update.c, libsvn_delta/branch_compat.c,

libsvn_delta/compat.c, libsvn_delta/compose_delta.c, libsvn_delta/svndiff.c,

libsvn_delta/xdelta.c, libsvn_diff/deprecated.c, libsvn_diff/diff_file.c,

libsvn_fs/fs-loader.c, libsvn_fs_base/bdb/locks-table.c, libsvn_fs_base/fs.c,

libsvn_fs_base/key-gen.c, libsvn_fs_base/notes/fs-history,

libsvn_fs_base/reps-strings.c, libsvn_fs_base/tree.c,

libsvn_fs_fs/cached_data.c, libsvn_fs_fs/hotcopy.c, libsvn_fs_fs/index.c,

libsvn_fs_fs/low_level.c, libsvn_fs_fs/pack.c, libsvn_fs_fs/structure,

libsvn_fs_fs/temp_serializer.c, libsvn_fs_fs/transaction.c,

libsvn_fs_fs/tree.c, libsvn_fs_fs/util.h, libsvn_fs_x/cached_data.c,

libsvn_fs_x/caching.c, libsvn_fs_x/hotcopy.c, libsvn_fs_x/id.h,

libsvn_fs_x/index.c, libsvn_fs_x/low_level.c, libsvn_fs_x/pack.c,

libsvn_fs_x/rev_file.c, libsvn_fs_x/structure, libsvn_fs_x/temp_serializer.c,

libsvn_fs_x/transaction.c, libsvn_fs_x/tree.c, libsvn_fs_x/util.h,

libsvn_ra/ra_loader.c, libsvn_ra/ra_loader.h, libsvn_ra/util.c,

libsvn_ra/wrapper_template.h, libsvn_ra_local/ra_plugin.c,

libsvn_ra_serf/commit.c, libsvn_ra_serf/get_file.c,

libsvn_ra_serf/property.c, libsvn_ra_serf/ra_serf.h, libsvn_ra_serf/update.c,

libsvn_ra_serf/util.c, libsvn_ra_svn/client.c, libsvn_ra_svn/cyrus_auth.c,

libsvn_ra_svn/marshal.c, libsvn_repos/authz_parse.c, libsvn_repos/commit.c,

libsvn_repos/compat.c, libsvn_repos/hooks.c, libsvn_repos/load.c,

libsvn_repos/log.c, libsvn_repos/notify.c, libsvn_repos/repos.c,

libsvn_repos/repos.h, libsvn_subr/cache-memcache.c, libsvn_subr/cmdline.c,

libsvn_subr/config_file.c, libsvn_subr/date.c, libsvn_subr/gpg_agent.c,

libsvn_subr/io.c, libsvn_subr/object_pool.c, libsvn_subr/path.c,

libsvn_subr/prompt.c, libsvn_subr/string.c, libsvn_subr/sysinfo.c,

libsvn_subr/temp_serializer.c, libsvn_subr/utf.c, libsvn_subr/utf8proc.c,

libsvn_subr/version.c, libsvn_subr/win32_xlate.c, libsvn_subr/x509parse.c,

libsvn_wc/conflicts.c, libsvn_wc/conflicts.h, libsvn_wc/copy.c,

libsvn_wc/lock.c, libsvn_wc/wc_db.c, libsvn_wc/wc_db.h,

libsvn_wc/wc_db_private.h:

(): Spelling fixes

  1. … 83 more files in changeset.
Fix various typos detected by codespell

* mod_authz_svn/mod_authz_svn.c, mod_dav_svn/dav_svn.h, mod_dav_svn/mirror.c,

mod_dav_svn/mod_dav_svn.c, mod_dav_svn/reports/file-revs.c,

mod_dav_svn/reports/list.c, mod_dav_svn/reports/log.c, mod_dav_svn/repos.c,

mod_dav_svn/version.c:

(): Spelling fixes

Fix various typos detected by codespell

* include/private/svn_auth_private.h, include/private/svn_branch_impl.h,

include/private/svn_config_private.h, include/private/svn_diff_tree.h,

include/private/svn_mergeinfo_private.h, include/private/svn_object_pool.h,

include/private/svn_repos_private.h, include/private/svn_subr_private.h,

include/private/svn_temp_serializer.h, include/private/svn_utf_private.h,

include/private/svn_wc_private.h, include/svn_auth.h, include/svn_client.h,

include/svn_cmdline.h, include/svn_compat.h, include/svn_fs.h,

include/svn_ra.h, include/svn_repos.h, include/svn_types.h,

include/svn_types_impl.h, include/svn_version.h, include/svn_wc.h,

include/svn_x509.h:

(): Spelling fixes

  1. … 8 more files in changeset.
Fix various typos detected by codespell

* tests/cmdline/externals_tests.py, tests/cmdline/lock_tests.py,

tests/cmdline/log_tests.py, tests/cmdline/merge_authz_tests.py,

tests/cmdline/merge_tests.py, tests/cmdline/move_tests.py,

tests/cmdline/svnadmin_tests.py, tests/cmdline/switch_tests.py,

tests/libsvn_client/conflicts-test.c, tests/libsvn_client/mtcc-test.c,

tests/libsvn_fs/fs-test.c, tests/libsvn_fs_x/fs-x-pack-test.c,

tests/svn_test_main.c:

(): Spelling fixes

Fix various typos detected by codespell

[in subversion/bindings]

* cxx/README, cxx/include/svnxx/tristate.hpp, cxx/src/aprwrap/array.hpp,

javahl/README, javahl/native/JNIStackElement.cpp, javahl/native/JNIUtil.h,

javahl/native/NativeStream.hpp, javahl/native/OperationContext.cpp,

javahl/native/org_apache_subversion_javahl_util_PropLib.cpp,

javahl/src/org/apache/subversion/javahl/ClientNotifyInformation.java,

javahl/src/org/apache/subversion/javahl/ISVNClient.java,

javahl/src/org/apache/subversion/javahl/ISVNRemote.java,

javahl/src/org/apache/subversion/javahl/ISVNRepos.java,

javahl/src/org/apache/subversion/javahl/NativeResources.java,

javahl/src/org/apache/subversion/javahl/SVNClient.java,

javahl/src/org/apache/subversion/javahl/SVNRepos.java,

javahl/src/org/apache/subversion/javahl/SVNUtil.java,

javahl/src/org/apache/subversion/javahl/callback/TunnelAgent.java,

javahl/src/org/apache/subversion/javahl/callback/UserPasswordCallback.java,

javahl/src/org/apache/subversion/javahl/types/Property.java,

javahl/src/org/apache/subversion/javahl/types/Revision.java,

javahl/src/org/apache/subversion/javahl/types/Status.java,

javahl/src/org/apache/subversion/javahl/types/VersionExtended.java,

javahl/src/org/tigris/subversion/javahl/Notify.java,

javahl/src/org/tigris/subversion/javahl/PromptUserPassword2.java,

javahl/src/org/tigris/subversion/javahl/PropertyData.java,

javahl/src/org/tigris/subversion/javahl/Revision.java,

javahl/src/org/tigris/subversion/javahl/SVNAdmin.java,

javahl/src/org/tigris/subversion/javahl/SVNClient.java,

javahl/src/org/tigris/subversion/javahl/SVNClientInterface.java,

javahl/src/org/tigris/subversion/javahl/Status.java,

javahl/src/org/tigris/subversion/javahl/StatusKind.java,

swig/include/proxy.py, swig/perl/libsvn_swig_perl/swigutil_pl.c,

swig/perl/native/Client.pm, swig/perl/native/Core.pm,

swig/python/tests/client.py, swig/python/tests/ra.py,

swig/python/tests/typemap.py:

(): Spelling fixes

  1. … 24 more files in changeset.
Fix various typos detected by codespell.

* tools/buildbot/slaves/README, tools/buildbot/slaves/svn-x64-macosx/setenv.sh,

tools/dev/build-svn-deps-win.pl, tools/dev/find-control-statements.py,

tools/dev/mergegraph/mergegraph.py, tools/dev/stress.pl,

tools/dev/x509-parser.c, tools/dist/backport.pl, tools/dist/dist.sh,

tools/dist/release.py, tools/examples/get-location-segments.py:

(): Spelling fixes

* STATUS:

Vote +1 on r1875726, approving.

Vote +1 on the r1875742 group.

* STATUS: Nominate r1875680.
* STATUS: Nominate r1875680.
Construct KAboutData using QString rather than QStringLiteral

If QStringLiteral is used, then a pointer to the data segment of the

libsvn_auth_kwallet shared library is stored in KAboutData. On exit, when

KAboutData is being deleted, libsvn_auth_kwallet may have already been

unloaded, causing the destructor to access invalid memory.

Patch by: Bernhard Übelacker <bernhardu{_AT_}mailbox.org>

Remove incorrect include paths from svn_cv_ruby_includes.

Files under ruby/ and ruby/backward/ should be included using "#include

<ruby/...>", if needed, instead of adding those directories to the include

path.

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Remove "-I$rbconfig_rubyhdrdir/ruby

-I$rbconfig_rubyhdrdir/ruby/backward"

Followup to r1874093, add Windows-specific argument escaping

Rather than directly using apr_pescape_shell(), use apr_escape_shell() to give

an indication whether escaping is needed. If APR reports no escaping is

needed, simply surround the argument in double-quotes to handle any embedded

whitespace.

When escaping is needed, on Unix we continue to use APR's escaping +

post-processing for whitespace. On Windows, perform the escaping ourselves per

these rules:

1. Surround the string with double-quotes

2. Escape any double-quotes or backslashes preceding a double-quote

3. Escape any metacharacters, including double-quotes, with ^

* subversion/libsvn_subr/cmdline.c

(escape_path): Refactored as above

Require at least version 1.5 of APR

Since r1874057, the apr_pescape_shell() API is being used to escape filenames

when invoking $SVN_EDITOR. This was added to APR in 1.5.0, released on

2013-11-13.

* INSTALL

(): Document new minimum APR version

* build/generator/gen_win_dependencies.py

(_find_apr): Bump minimal_apr_version to 1.5.0

* configure.ac

(APR_VER_REGEXES): Bump minor version in 1.x regex to 1.5

* get-deps.sh:

(APR_VERSION): Specify 1.5.0 as default version

* subversion/include/private/svn_dep_compat.h

(apr_time_from_msec): Removed, since it's provided by APR 1.4.0 or later

* subversion/include/svn_types.h

(apr_hash_this_key, apr_hash_this_key_len, apr_hash_this_val): Remove

prototypes, since they're provide by APR 1.5.0 or later

* subversion/libsvn_subr/iter.c

(hash_do_baton): Remove condition requiring APR 1.4.0 to define this type

(svn_iter_apr_hash): Remove pre-APR 1.4.0 code

(apr_hash_this_key, apr_hash_this_key_len, apr_hash_this_val): Remove

definitions, since they're provided by APR 1.5.0 or later

* subversion/libsvn_subr/pool.c

(apr_pool_create_unmanaged_ex): Remove conditional alias to

apr_pool_create_core_ex, for APR versions < 1.3.3

Followup to r1874057, escape whitespace instead of quoting filename

As danielsh pointed out, only specific characters can be escaped by a backslash

in quoted shell strings. Rather than surrounding the escaped path with double

quotes, post-process the quoted path and manually escape any whitespace that is

present.

* subversion/libsvn_subr/cmdline.c

(escape_path): New function, wrapper around apr_pescape_shell(), which

handles escaping of whitespace.

(svn_cmdline__edit_file_externally, svn_cmdline__edit_string_externally):

Call the new function instead of apr_pescape_shell()

* subversion/tests/cmdline/update_tests.py

(update_accept_conflicts): Include ';' in renamed path ("p; i"), to ensure

non-whitespace escaping is handled correctly.

Escape filenames when invoking $SVN_EDITOR

Per https://subversion.apache.org/faq.html#svn-editor, $SVN_EDITOR is invoked

through the shell instead of directly executed. The user is expected to

properly escape/quote $SVN_EDITOR, but svn was putting the filename directly

into the command without any escaping. This therefore breaks attempts to,

e.g., run the editor from the merge conflict dialog when a path has special

characters.

Update locations where we invoke the editor to quote the filename as well as

escape shell special characters using apr_pescape_shell(). The quotes are

needed in addition to the escaping, since apr_pescape_shell() does not escape

whitespace.

* subversion/libsvn_subr/cmdline.c

(svn_cmdline__edit_file_externally, svn_cmdline__edit_string_externally):

Quote and escape, via apr_pescape_shell(), the filename in the command line.

* subversion/tests/cmdline/update_test.py

(update_accept_conflicts): Rename "A/D/G/pi" to "A/D/G/p i" before performing

the merge, so the test exercises the changes above.

* tools/dist/backport.pl: Continue chasing the experimental nature of 'given'

and 'when', through perl5300delta.

* STATUS:

Vote +1 on the r1865987 group.

Vote +1 on r1868151, approving.

* STATUS:

Vote +1 on r1851903, approving.

Vote +1 on r1853450, approving.

Vote +1 on r1856397.