subversion

Checkout Tools
  • last updated 2 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix harmless uninitialized read in svn_fs_*_index_append

* subversion/libsvn_fs_fs/index.c (svn_fs_fs__l2p_index_append),

subversion/libsvn_fs_x/index.c

(svn_fs_x__l2p_index_append, svn_fs_x__p2l_index_append):

Do not access entry fields that are unset due to reaching eof.

Found by: Clang 10 memory sanitizer

Patch by: Orivej Desh <orivej{_AT_}gmx.fr>

Reviewed by: danielsh (svn_fs_fs__l2p_index_append)

hartmannathan

Fix issue #4862 "Merge: the resulting mergeinfo is non-deterministic".

In certain merge scenarios where the merge added new paths, the mergeinfo

change notifications and the resulting mergeinfo were non-deterministic.

* subversion/libsvn_client/merge.c

(process_children_with_new_mergeinfo): Process these paths in parent-to-

child order so that inherited mergeinfo is propagated consistently.

* subversion/tests/cmdline/merge_tests.py

(merge_deleted_folder_with_mergeinfo_2): Check the mergeinfo change

notifications and the resulting mergeinfo, as these are now stable.

* tools/dev/wc-format.py (get_format):

Avoid comparison between str and int, which is not allowed on Python 3.

In recent merge tests, verify the merge result as well as success.

For issue #4859 "Merge removing a folder with non-inheritable mergeinfo ->

E155023: can't set properties: invalid status for updating properties".

* subversion/tests/cmdline/merge_tests.py

(merge_deleted_folder_with_mergeinfo,

merge_deleted_folder_with_mergeinfo_2): Verify the merge result.

Remove an unused field in merge code.

There is no code anywhere that sets this flag. There was in svn 1.6, but

not in svn 1.7 and later.

For issue #4859 "Merge removing a folder with non-inheritable mergeinfo ->

E155023: can't set properties: invalid status for updating properties".

* subversion/libsvn_client/mergeinfo.h

(svn_client__merge_path_t): Remove 'scheduled_for_deletion' field.

* subversion/libsvn_client/merge.c

(remove_absent_children): Remove reference to it.

* buildbot/slaves/win32-SharpSvn/svntest-test.cmd

Call the default python interpreter on the tests.

* buildbot/slaves/win32-SharpSvn/svntest-bindings.cmd

Explicitly run swig python tests with python2 for now.

Fix invalid escape sequence in working copy queries which causes

upgrades from Subversion 1.7 working copies to fail with recent

SQLite versions (>= 3.29.0).

* subversion/libsvn_wc/wc-metadata.sql

(STMT_UPGRADE_TO_30): Use '' to delimit values and "" to escape column names.

Fix issue #4859 "Merge removing a folder with non-inheritable mergeinfo ->

E155023: can't set properties: invalid status for updating properties".

The code was attempting to set mergeinfo on a path that is being deleted by

the merge. This happened only in certain unusual cases such as when

deleting a folder that had non-inheritable mergeinfo and had children.

This patch fixes the problem by removing the 'children_with_mergeinfo'

entries for sub-paths of a deleted folder.

* subversion/libsvn_client/merge.c

(merge_cmd_baton_t): Allow modifying 'children_with_mergeinfo'.

(record_update_delete): Remove from 'children_with_mergeinfo' all paths

in the subtree.

* subversion/tests/cmdline/merge_tests.py

(merge_deleted_folder_with_mergeinfo): Remove 'XFail'.

(merge_deleted_folder_with_mergeinfo_2): New test.

(test_list): Add the new test.

Add a test for issue #4859: Merge removing a folder with non-inheritable

mergeinfo.

The merge fails like this:

> svn merge -c4 ^/branch_A .../A

> --- Merging r4 into '.../A':

> D .../A/D

> svn: E155023: Can't set properties on '/.../A/D/gamma':

> invalid status for updating properties.

* subversion/tests/cmdline/merge_tests.py

(merge_deleted_folder_with_mergeinfo): New test.

(test_list): Run it.

Follow up to r1878909: Fix test description and ignore build artefacts.

* build.conf (filesize-test): Fix test description.

* subversion/tests/client: Add svn:ignore property.

* build.conf: Add filesize-test to ALL_TESTS to allow testing on Windows.
Fix a number of thinkos in human-readable file size formatting.

* subversion/svn/filesize.c

(format_size): Be smarter about predicting floating-point rounding to

decide whether to show decimal places or not.

(get_base2_unit_file_size): Fix human-readable size order calculation.

(get_base10_unit_file_size): Likewise.

* build.conf (filesize-test): New test suite.

(private-includes): Add subversion/svn/filesize.c for filesize-test.

* subversion/tests/client/filesize-test.c: New.

Found by: Tobias Bading <tbading{_AT_}web.de>

Patch by: me

    • ?
    /trunk/subversion/tests/client/filesize-test.c
* tools/backup/hot-backup.py.in

Remove unnecessary semicolons.

Make the hot-backup.py script work with Python 3.

* tools/backup/hot-backup.py.in

Use functools.cmp_to_key() for sorting conversions, and decode the

output from svnlook.

Patch by: Petyovský Petr <petyovsky{_AT_}feec.vutbr.cz>

autogen.sh: Remove per SWIG bindings checked files on release mode.

The .swig_pl_checked, .swig_py_checked, .swig_rb_checked files are

created by 'make -f autogen-standalone.mk autogen-swig' if this script

run on release mode, however they should not exist before users run

the configure script.

* autogen.sh

Remove .swig_pl_checked, .swig_py_checked, and .swig_rb_checked files

after generating SWIG language bindings source files when the script

runs on release mode.

configure: Add new option to specify path to swig bindings targets

Before this commit, it was not possible to use distinct Python

installations for the build system and test suite on the one hand,

and for building language bindings against on the other hand.

So we introduce new variable "SWIG_PY_PYTHON" for a target of

the SWIG Python bindings and a configure option to specify it.

Also, for the symmetry we introduce "SWIG_PL_PERL" and

"SWIG_RB_RUBY" for the Perl and Ruby SWIG bindings, and options

to specify them.

* configure.ac ():

- Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for

targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",

"PYTHON", "RUBY".

- Introduce --with-swig-perl, --with-swig-python, --with-swig-ruby

options for setting variables "SWIG_PL_PERL", "SWIG_PY_PYTHON",

"SWIG_RB_RUBY".

* Makefile.in, build/ac-macros/swig.m4 ():

Use variables "SWIG_PL_PERL", "SWIG_PY_PYTHON", "SWIG_RB_RUBY" for

targets of the SWIG Perl, Python, Ruby bindings instead of "PERL",

"PYTHON", "RUBY".

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX step 2):

- Describe how to specify the path to the target language interpreters

with the new options, instead of using environment variables.

- Fix the name of glue libraries.

Review by: danielsh

* tools/dist/release-lines.yaml: Update supported release list for release.py.

1.14 is our new supported release, and 1.10 is also still supported.

The 1.13 and 1.9 release lines both drop out of support.

* subversion/tests/cmdline/svndumpfilter_tests.py (filter_and_return_output)

Use list complehension instead of map function, which returns iterator

on Python 3, to get EOL translated list of lines on Windows.

Reported by: jcorvel

Tested by: jcorvel

* subversion/tests/cmdline/svntest/main.py (wait_on_pipe):

Accept any sequence of bytes even if it is not valid UTF-8 character

sequence.

Reported by: jcorvel

Tested by: jcorvel

Fix eol style treatment in command tests on Windows.

[in subversion/tests/cmdline]

* merge_tests.py (merge_conflict_markers_matching_eol,

merge_eolstyle_handling),

* patch_tests.py (patch_no_svn_eol_style,

patch_with_svn_eol_style,

patch_with_svn_eol_style_uncommitted),

* update_tests.py (conflict_markers_matching_eol,

update_eol_style_handling):

Specify keep_eol_style = True evne if platform is Windows.

* merge_tests.py (merge_conflict_markers_matching_eol),

* patch_tests.py (patch_no_svn_eol_style,

patch_with_svn_eol_style,

patch_with_svn_eol_style_uncommitted),

* update_tests.py (conflict_markers_matching_eol):

Use binary mode to write file contents for strict eol style.

* merge_tests.py (merge_conflict_markers_matching_eol),

* patch_tests.py (patch_with_svn_eol_style,

patch_with_svn_eol_style_uncommitted),

* conflict_markers_matching_eol):

Switch per platform eol value for 'native' svn:eol-style

* svntest/wc.py (State.from_wc):

Use io.open() explicitly to specify 'newline' parameter for universal

newline, even on Python 2. With this change, '\r' end of line chracters in

files are also translated to '\n' if keep_eol_style=False (or unspicified)

on Python 2. Also explicitly specify encoding to 'utf-8' not to be affected

by Python's file system encoding.

Reported by: jcorvel

Tested by: jcorvel

Follow-up to r187712: entries-dump: Use escape string-typed value for two

more char * type values.

* subversion/tests/cmdline/entries-dump.c

(print_prefix): Add new Python function _to_str and then use it in

Entry.set_strval.

(print_as_bytes): New function.

(str_value):

- Quote human-readable value when print it.

- Use print_as_bytes to print the value of "value"

(entries_dump):

- Use iterpool in the loop to print each entry.

- Use an escaped string for the key value of the "entries" dict object.

(tree_dump_dir): Use an escaped string for the key value of the "dirs"

dict object.

Reported by: jcorvel

Tested by: jcorvel

Follow-up to r1876670:

Fix another problem where the bb-openbsd cleanup step attempts to run

'svn cleanup' on a working copy that does not exist:

+ test -d ../build/.svn

program finished with exit code 1

https://ci.apache.org/builders/svn-bb-openbsd/builds/544/steps/Cleanup/logs/stdio

* tools/buildbot/slaves/bb-openbsd/svnclean.sh: Don't abort the script if

the working copy directory does not exist.

Fix an inefficient way to fill an array of inherited properties.

The code that obtains inherited properties for servers that don't support the

capability used an inefficient way of array filling. At each iteration, all

previously added properties were moved one position to the right to maintain

depth-first order. As a solution, walk the array of iprop requests from the

end and get rid of extra copying of array elements.

* subversion/libsvn_ra_serf/inherited_props.c

(): Remove unused 'svn_sorts.h' and 'private/svn_sorts_private.h' includes.

(get_iprops_via_more_requests): Walk the array of iprop requests from the

end.

Patch by: Denis Kovalchuk <denis.kovalchuk{_AT_}visualsvn.com>

Review by: brane

* CHANGES: Adjust expected release date of 1.14.0.

* INSTALL (I.C.12): Add Note that non-release mode is required for building

SWIG Python 2 bindings.

* subversion/bindings/swig/INSTALL

(BUILDING SWIG BINDINGS FOR SVN ON UNIX, Step 2): Add description how to

confirm that the ./configure could find SWIG path correctly.

Review by: danielsh

Fix an TypeError exception in 'release.py create-tag'.

Regular expression matching failed due to lack of an explicit encoding

for files modified during the post-release housekeeping step.

The exception was observed with Python 3.7.7 and looked as follows:

INFO:root:Bumping version numbers on the branch

Traceback (most recent call last):

File "/home/stsp/svn/svn-trunk/tools/dist/release.py", line 1916, in <module>

main()

File "/home/stsp/svn/svn-trunk/tools/dist/release.py", line 1912, in main

args.func(args)

File "/home/stsp/svn/svn-trunk/tools/dist/release.py", line 1134, in create_tag_and_bump_versions

bump_versions_on_branch(args)

File "/home/stsp/svn/svn-trunk/tools/dist/release.py", line 1108, in bump_versions_on_branch

str(args.version.patch), str(new_version.patch))

File "/home/stsp/svn/svn-trunk/tools/dist/release.py", line 1078, in replace_in_place

replacement = re.sub(pattern, repl, line)

File "/usr/local/lib/python3.7/re.py", line 192, in sub

return _compile(pattern, flags).sub(repl, string, count)

TypeError: cannot use a string pattern on a bytes-like object

* tools/dist/release.py

(bump_versions_on_branch): Create temporary file handles with an explicit

encoding argument (assume UTF-8).

* tools/dev/unix-build/Makefile.svn: Stop testing BDB repositories by default.

* tools/dev/unix-build/Makefile.svn: Switch the bb-openbsd-buildbot to the

current releases of APR and APR-util.

* COMMITTERS:

(jun66j5) Add myself as a full committer.