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

Changeset 1819229 is being indexed.

Merge the r1818651 group from trunk:

* r1818651, r1818662, r1818727, r1818801, r1818803, r1818807, r1818868, r1818871, r1819162

Improve lz4,utf8proc configure behavior, and print the lz4 version in --version -v


Correctly detect, note and print dependencies for builders/packagers.


+1: stefan2, astieger, jamessan

    • ?
    • ?

Vote +1 on the r1818651 group, approving.

Vote +1 on r1819093, approving.

Vote +1 on the r1818578 group.

Vote +1 on r1818584.

* tools/dist/edit-N-log-messages

(usage): Document a current limitation.

* tools/dist/edit-N-log-messages: New.
    • ?
On branch swig-py3: Catch up to trunk@1819202.

    • ?
  1. … 110 more files in changeset.
On branch swig-py3: Fix additional Bytes versus String inconsistencies.

Be explicit about UTF-8 conversions between bytes and strings. All

swig unit tests now pass under both Python 2 and 3.

* subversion/bindings/swig/include/svn_types.swg

(typemap(argout) unsigned char digest[ANY], unsigned char *digest):

Treat checksum digest data correctly as bytes, not a string.

* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c

(write_handler_pyio): Create a compatibility definition, SVN_SWIG_BYTES_FMT, to

ensure raw file data is treated as bytes in Python 3 and string in Python2.

* subversion/bindings/swig/python/tests/,













Use BytesIO instead of StringIO to servce as a source of raw binary data.


Open raw data file in binary mode.


Explicity encode data being written to a file opened in binary mode and

decode binary data in the result from binascii.b2a_hex().

Merge r1817856 from trunk:

* r1817856

Fix segfault when no home directory is available.


API violation: svn_config_get_user_config() may return NULL.


+1: danielsh, jamessan, stefan2

    • ?
Merge r1817856 from trunk:

* r1817856

Fix segfault when no home directory is available.


API violation: svn_config_get_user_config() may return NULL.


+1: danielsh, jamessan, stefan2

    • ?
extend vote on r1818651 group

Vote for & approve r1817856.


Vote for r1819093.


Add r1819162 to r1818651 group (lz4 config & doc) and vote for it.

Doc fix only, no functional change.


(C.22): Typo in libname.


Voting for & approving r1817856.


Nominate r1818584 (svnserve crash) and vote for it.


Nominate the r1818578 group (svn_dirent_t.size API) and vote for it.

Nominate the r1818577 group (fsfs-v4 tests) and vote for it.

Nominate the r1819036 group (--search on Windows) and vote for it.

Nominate r1818584 (svnserve crash) and vote for it.

Follow up on r1818577: Make tests pass without GLOBAL_SCHEDULER. must run the test sub-suites with the original parameter set

instead of the tweaked one. Hence, tweak the parameters only immediately

before exectuting the tests.

* subversion/tests/cmdline/svntest/

(parse_options): Factor out the server version tweaks ...

(tweak_options_for_precooked_repos): ... into this function.

(execute_tests): Update caller.

On branch swig-py3: Ensure the correct parent pool weakref is used.

* subversion/bindings/swig/include/proxy_apr.swg

(GenericSWIGWrapper.set_parent_pool): Update the _is_valid weakref with the

ref to the new parent pool.

On branch swig-py3: Replace hasattr check for a method with try-except.

* subversion/bindings/swig/include/proxy.swg

(_assert_valid_deep): Replace hasattr check for the 'assert_valid' method

with a try-except block as some class instances can have the method but return

False to hasattr().

* STATUS: Nominate r1819093.

Introduce a new global option: --password-from-stdin

This new option makes Subversion's command line applications read a password

from standard input. It can be used as an alternative to the --password option

in order to provide passwords without leaking them to argv, which on Unix-like

systems can be viewed by anyone with tools such as ps(1).

Patch by: William Orr <>

* subversion/include/svn_io.h

(svn_io_stdin_readline): Declare.

* subversion/libsvn_subr/io.c

(svn_io_stdin_readline): New public API which reads a line of input from

standard input.

* subversion/svn/cl.h

(svn_cl__opt_state_t): Declare auth_password_from_stdin option.

* subversion/svn/svn.c,


(svn_cl__longopt_t): Add opt_auth_password_from_stdin.

(svn_cl__options): Add --password-from-stdin.

(svn_cl__global_options): Add opt_auth_password_from_stdin.

(sub_main): Handle the new option.

* subversion/svnmucc/svnmucc.c

(help): Add --password-from-stdin option to help text.

(sub_main): Handle the new option.

* subversion/svnrdump/svnrdump.c

(svn_svnrdump__longopt_t): Add opt_auth_password_from_stdin.

(svnrdump__options, opt_baton_t): Add --password-from-stdin and --dumpfile.

(opt_baton_t, replay_revisions, dump_cmp, load_cmd, sub_main): Add support

for the new options. Since svnrdump has historically been reading dump file

data from stdin the --password-from-stdin option requires --dumpfile.

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout:

Adjust exected output.

* tools/client-side/svn-mergeinfo-normalizer/svn-mergeinfo-normalizer.c

(svn_min__longopt_t, svn_min__options): Add opt_auth_password_from_stdin.

(svn_min__options): Add --password-from-stdin.

(sub_main): Support the new options.

* tools/client-side/svnconflict/svnconflict.c

(svnconflict_cmd_baton_t, global_options): Add opt_auth_password_from_stdin.

(svnconflict_options): Add --password-from-stdin.

(sub_main): Support the new options.

Add erratum for the svn_dirent_t issue.

* notes/api-errata/1.10/ra001.txt

(): New file.

    • ?
Follow-up on r1819037: Update Perl test expectations over ra_local.

* subversion/bindings/swig/perl/native/t/3client.t

(dirent tests): ra_local now also returns -1 for directory sizes.

Follow-up to r1819036: (Hopefully) fix the windows build.

* subversion/svn/svn.c

(svn_cl__cmd_table): MS VC seems not to like preprocessor directives

inside preprocessed strings.

Fix inconsistent handling of svn_dirent_t.size for directories.

Most code uses SVN_INVALID_FILESIZE for them, so change the docs to match

that fact and update all users to consistently follow the new docstring.

* subversion/include/svn_types.h

(svn_dirent_t): Change documentation for SIZE.

* subversion/libsvn_ra_local/ra_plugin.c

(svn_ra_local__get_dir): Return the new default for directories.

* subversion/libsvn_ra_serf/list.c

(item_closed): Be sure to default to SVN_INVALID_FILESIZE.

* subversion/libsvn_repos/list.c

(fill_dirent): Set SIZE consistently with other RA layers.

Work-around for our common Windows CLI limitations with 'svn ls --search'.

Since we currently can't pass typical glob patterns like "*.txt", we will

instead implicitly add '*' to the beginning and the end of all search

patterns. As a result, we will do sub-string matches similar to 'svn log'.

Note that this effects the Windows CLI client only and any other client as

well as the bindings retain their "full pattern match" semantics.

The latest discussion on that issue can be found here:

From: Johan Corveleyn <>

Subject: list --search matching and Windows *-expansion

Date: 2017-12-18 15:20


* subversion/svn/list-cmd.c

(svn_cl__list): Under Windows, expand the pattern to effectively perform

a sub-string search - like we do for 'svn log --search'.

* subversion/svn/svn.c

(svn_cl__cmd_table): Under Windows, mention that we will match sub-strings

instead of whole path segments.

* subversion/tests/cmdline/

(filtered_ls): Disable under Windows because sub-string matching produces

a super-set of the expected results.

On branch swig-py3: Correctly manage swig objects with Python new style classes.

* subversion/bindings/swig/include/

(__getattr__): Replace __getattr__ with __getattribute__ to correctly

intercept attribute access, even when swig uses descriptors for new style

classes (which are the only type available in Python 3).

* build/ac-macros/swig.m4


Request that swig generate new style classes, even for Python 2, to reduce

differences with Python 3.

* subversion/bindings/swig/include/proxy.swg

(_copy_metadata_deep): Remove iteritems() use to make compatible with both

Python 2 and 3.

(_assert_valid_deep): Remove itervalues() use and add type check to be

compatible with both Python 2 and 3.

On branch swig-py3: Disable invalid PyInt_Check() in Python 3.

* subversion/bindings/swig/core.i

(%typemap(in) (char *buffer, apr_size_t *len)):

Remove PyInt_Check() when building against Python 3, since it has

been removed.

Add write-changelog command to for parsing CHANGES text from

commit messages.

Usage: write-changelog [--include-unlabeled-summaries] branch previous

branch The branch (or tag or trunk), relative to

^/subversion/, of which to generate the changelog,

when compared to "previous".

previous The "previous" branch or tag, relative to

^/subversion/, to compare "branch" against.


Include summary lines that do not have a changes

label, unless an explicit [c:skip] or [c:ignore] is

part of the commit message (except if the summary line

contains 'STATUS', 'CHANGES',

'Post-release housekeeping', 'Follow-up' or starts

with '*').

We try to retain all relevant "changelog lines" from the commit messages.

Changelog lines are lines with the following format:

'['[audience[:section]]']' <message>


<message> '['[audience[:section]]']'


audience = U (User-visible) or D (Developer-visible)

section = general|major|minor|client|server|clientserver|other|api|bindings

(section is optional and is treated case-insensitively)

message = the actual text for CHANGES

This means the "changes label" can be used as prefix or suffix, and it

can also be left empty (which results in an uncategorized changes entry),

if the committer isn't sure where the changelog entry belongs.

Putting [skip], [ignore], [c:skip] or [c:ignore] somewhere in the

log message means this commit must be ignored for Changelog processing

(ignored even with the --include-unlabeled-summaries option).

If there is no changes label anywhere in the commit message, and the

--include-unlabeled-summaries option is used, we'll consider the summary

line of the commit message (= first line except if it starts with a *)

as an uncategorized changes entry, except if it contains "status",

"changes", "post-release housekeeping" or "follow-up".

* tools/dist/

(add_to_changes_log): New function.

(print_section): New function.

(print_changes): New function.

(write_changelog): New function.

* STATUS: Vote +1 on the r1818651 group.