Checkout Tools
  • last updated 1 hour ago
Constraints: committers
Constraints: files
Constraints: dates

Changeset 1874216 is being indexed.

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.

Fix weak test coverage.

In the tests for "semi-canonical" and "canonical" kinds of inputs to

svn_rangelist_merge2(), the input generator previously called "generate a

random non-validated input" repeatedly until it passed certain quality

tests. That made the result heavily biased towards very simple cases.

As a result, the coverage of the "semi-canonical" and "canonical" tests

missed the failure mode of the original bug report #4840.

This generates "semi-canonical" and "canonical" inputs with a fairer

distribution, increasing their coverage to include that failure mode.

For issue 4840 "Merge assertion failure in svn_sort__array_insert"

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

(rand_interval_triangular): New.

(rangelist_random_non_validated): Use it.


ascending_values): New.


rangelist_random_canonical): Rewrite.

(add_failure_mode): Deduplicate 'Attempted insert at index ...' messages.

Use the variable I declared in r1872921.
Add comments about parameters of random input generation.

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

Report each failure mode only once in random-input tests.

Instead of printing each case that fails, print only the first example of

each failure mode. This makes it easier to manually check that test has

enough coverage. (Programmatic checks for particular coverage could be


For issue 4840 "Merge assertion failure in svn_sort__array_insert"

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

(new_response): New.



test_rangelist_merge_random_non_validated_inputs): Use it.

New test for issue 4840 "Merge assertion failure in svn_sort__array_insert".

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

(test_rangelist_merge_array_insert_failure): New test.

(test_funcs): Run it, XFAIL.

[On the staging-ng branch] Add browserconfig.xml, site.webmanifest

* browserconfig.xml

New file. Allows tile.png and tile-wide.png to be used when pinning

site in IE. See

* site.webmanifest

New file. Used by various web browsers on computers and mobile

devices. See

Both files are based on corresponding files found in HTML5 Boilerplate v7.3.0,, which is under MIT License.

[On the staging-ng branch] Add tile-wide.png.

* tile-wide.png

New file. Wide tile at 558x270, used when pinning sites in IE. This

image is the result of some graphical experimentation because the

stock svn logo does not fit well in this width.

[On the staging-ng branch] Update TEMPLATE (work in progress)


Change DOCTYPE and html tags to HTML5 style. See

Add meta "viewport" for mobile friendly viewing. See

Add the various stylesheet, icon, and theme color tags.

Add a server side include for /site-footer.html (which doesn't exist


[On the staging-ng branch] Add normalize.css, main.css

* normalize.css, main.css

New files. MIT Licensed files from HTML5 Boilerplate v7.3.0,

    • ?