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

Changeset 1874508 is being indexed.

1.14 release notes: Fix wrong heading for new feature

* docs/release-notes/1.14.html

(svnadmin-rev-size): Change heading type from h4 to h3 for consistency with

other release notes.

1.14 release notes: Relative to 1.10, describe experimental changes

* docs/release-notes/1.14.html

(new-feature-compatibility-table): Add rows the experimental shelving,

commit checkpointing, and viewspec output features.




viewspec-output): New subsections. Text is (mostly) copied from the 1.11

through 1.13 release notes, with some edits. Notably, document that while

the shelving feature can handle more types of changes than in 1.10, it is

reportedly slower than in 1.10.

Fix handling for non-ascii characters on internal path and stderr

* tools/hook-scripts/

(docstring): Add note to handle non-ascii path and/or stderr output.


+ Decode changed paths as 'utf-8' explicitly on Python 3 and leave them as

('utf-8' encoded) bytes in Python 2.7

+ Decode stderr out message from svnlook as sys.stderr.encoding

(Commands.user_command): Decode stderr out message from user commands as


Use configparser.ConfigParser instead of configparser.SafeConfigParser in py3

On Python 3.2, configparser.Configparser implementation is replaced by one it

was configparser.SafeConfigParser before 3.2, and SafeConfigParser class is

only an alias for compatibility on Python >= 3.2. So we use

ConfigParser.SafeConfigParser in Python 2.7 and configparser.ConfigParser in

Python 3 for the base class of our Config class.

* tools/hook-scripts/

(ConfigParser): New valiable to absorb difference of package and class name

(class Config): Use ConfigParser as base class

1.14 release notes: Document support for building with SWIG 4, Python 3.x.

* docs/release-notes/1.14.html

(swig4-on-py3): New subsection.

1.14 release notes: Document 'svn info --show-item=changelist'

* docs/release-notes/1.14.html

(info-show-item-changelist): New subsection.

1.14 release notes: Make revisions numbers link to viewvc.

* docs/release-notes/1.14.html



mod-dav-svn-twice-hint): Make revision numbers into links to viewvc.

(log-quiet-diff): Document the revision number as a link.

1.14 release notes: 1.10.x is old stable; 1.9.x is EOL

* docs/release-notes/1.14.html

(svn-1.10-old-stable): New subsection. Document that 1.10.x is now

the old stable version.

(svn-1.9-deprecation): New subsection. Document that 1.9.x is now

end of life (EOL).

1.14 release notes: Relative to 1.10, describe nonexperimental changes in 1.13

* docs/release-notes/1.14.html

(new-feature-compatibility-table): Add row for 'svnadmin rev-size'.




mod-dav-svn-twice-hint): New subsections, with text copied from 1.13

release notes and/or log entries from the relevant revisions, and edited

for proper flow.

1.14 release notes: Relative to 1.10, describe nonexperimental changes in 1.12

* docs/release-notes/1.14.html

(conflict-resolver): Add text from 1.12 release notes to text previously

copied from 1.11 release notes, with minor editing for proper flow.






svn-cleanup): New subsections, copied from 1.12 release notes.

* docs/release-notes/1.12.html: fix missing </ul> and </li> end tags

1.14 release notes: Relative to 1.10, describe nonexperimental changes in 1.11

* docs/release-notes/1.14.html

(news): Explain that these 1.14-LTS release notes are written relative to

the preceding LTS release, 1.10.






ruby-swig-issue-602): New subsections, copied from 1.11 release notes.

Complete the upgrade of array insert/delete functions.

For issue #4840 "Merge assertion failure in svn_sort__array_insert".

This changes all remaining callers, in other areas of Subversion, to use the

new array insert/delete functions that return standard Subversion errors if

inputs are out of bounds, and removes the old versions of those functions.

These are private functions so the public API is not affected.

* subversion/include/private/svn_sorts_private.h

* subversion/libsvn_subr/sorts.c


svn_sort__array_delete): Remove.


svn_sort__array_delete2): Rewrite as the only version, instead of calling

the old version. No functional change.

Elsewhere: update all callers.

  1. … 4 more files in changeset.
release-notes (1.11 - 1.14): fix missing note in compatibility table

* docs/release-notes/1.11.html

* docs/release-notes/1.12.html

* docs/release-notes/1.13.html

* docs/release-notes/1.14.html

(new-feature-compatibility-table) Fix missing note that when using

file:// RA method, the svn program is both client and server.

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



(): Document new minimum APR version

* build/generator/

(_find_apr): Bump minimal_apr_version to 1.5.0


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


(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


* 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_accept_conflicts): Include ';' in renamed path ("p; i"), to ensure

non-whitespace escaping is handled correctly.

Escape filenames when invoking $SVN_EDITOR

Per, $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


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


* 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_accept_conflicts): Rename "A/D/G/pi" to "A/D/G/p i" before performing

the merge, so the test exercises the changes above.

Fix test failures seen on 32-bit architectures (Fedora Raw Hide, both

i686 and armv7hl) when building with GCC 10 snapshots.

* subversion/tests/libsvn_fs_fs/fs-fs-pack-test.c

(get_rev_contents): Avoid signed integer overflow on platforms with

32-bit long.

Nominate r1872030 group (issue #4840, merge assertion failure).
Nominate r1872030 group (issue #4840, merge assertion failure).
1.14 release notes: svn log --quiet and --diff not mutually exclusive

* docs/release-notes/1.14.html

(log-quiet-diff): New subsection. Documents the change introduced in


* publish/docs/release-notes/1.10.html: Fix end tag: </tt> to </p>.

Follow-up to r1872925:

* subversion/tests/README: Add missing case 'SKIP' to the synopsis.

Make it possible for RA-layer consumers to detect redirect loops reliably.

Make svn_ra_open() return both canonicalized and non-canonicalized versions

of redirect URLs. The latter can be used to detect redirect loops, while

the former can be used for any other purposes as usual.

See r1866899 and r1873375 for reasons why this is necessary.

* subversion/include/svn_ra.h

(svn_ra_open4): Deprecate.

(svn_ra_open5): Declare.

* subversion/libsvn_client/ra.c

(svn_client__open_ra_session_internal): Detect redirect loops based on the

non-canonicalized representation of the URL used by the RA implementation.

The canonicalized version is insufficient for loop detection.

* subversion/libsvn_ra/deprecated.c

(svn_ra_open4): Implement as a wrapper around svn_ra_open5().

* subversion/libsvn_ra/ra_loader.c

(svn_ra_open5): Implement.

(svn_ra_create_callbacks): Update for new output parameter 'redirect_url_p'.

* subversion/libsvn_ra/ra_loader.h

(open_session): Needs a new output parameter.

* subversion/libsvn_ra/wrapper_template.h

(compat_open): Track addition of new output parameter.

* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__open): Add new output parameter.

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__exchange_capabilities): Return the URL received in a HTTP

redirect as-is in new 'redirect_url' output parameter.

(svn_ra_serf__has_capability): Track addition of output parameter.

* subversion/libsvn_ra_serf/ra_serf.h

(svn_ra_serf__exchange_capabilities): Declare new output parameter.

* subversion/libsvn_ra_serf/serf.c

(svn_ra_serf__open): Support new 'redirect_url' output parameter.

* subversion/libsvn_ra_svn/client.c

(ra_svn_open): Support new 'redirect_url' output parameter.

* STATUS: Nominate r1873375

Canonicalize redirect URLs in ra_serf, rather than using them as-is.

This prevents an assertion failure in the client if the server sends

a redirect to a non-canonical URL.

If Apache HTTPD uses a redirect statement such as this:

Redirect permanent "/svn"

then the redirect URL won't be canonical. For example, access to the path

"/svn/trunk" will be redirected to

Note the double-slash which eventually triggers an assertion failure when

the redirect URL gets checked at an API boundary outside of ra_serf.

* subversion/libsvn_ra_serf/options.c

(svn_ra_serf__exchange_capabilities): Treat redirect URLs as untrusted

input and attempt to canonicalize them.

Fix issue #4840 "Merge assertion failure in svn_sort__array_insert".

This replaces the implementation of svn_rangelist_merge2() with a correct

and simpler one.

* subversion/libsvn_subr/mergeinfo.c


rangelist_merge2): Delete.












rangelist_merge): New.

(svn_rangelist_merge2): Adjust to call the new implementation.

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




test_rangelist_merge_random_semi_c_inputs): Remove XFAIL.

Fix test expectations of an XFAIL test.

For issue #4840 "Merge assertion failure in svn_sort__array_insert".

Follow-up to r845298 (r5224):

* subversion/tests/README: Add missing cases to the synopsis.

Restore a debug-mode assertion; perform additional validation in debug

mode only.

A follow-up to r1872118.

For issue #4840 "Merge assertion failure in svn_sort__array_insert".

* subversion/libsvn_subr/mergeinfo.c

(rangelist_merge2): Restore a debug-mode assertion.

(svn_rangelist_merge2): Perform additional validation in debug

mode only.