subversion

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

Changeset 1875602 is being indexed.

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"

1.14 release notes: Improve #editor-filename-escaping and add example

Follow-up to r1875312.

Mailing list thread "svn commit: r1875312..." on 17 Mar 2020, archived here:

https://lists.apache.org/thread.html/r037b3cf7e1cc4990c7d333c6499b34b45bc59806b8a43d3b06c0fbab%40%3Ccommits.subversion.apache.org%3E

* docs/release-notes/1.14.html

(editor-filename-escaping): Implementing suggested improvements.

Specifically, as danielsh points out, $SVN_EDITOR is only one of several

ways to configure a user-defined editor. Also, add example CLI

"screenshot" provided by danielsh (text conflict which leads to launching

the editor).

Suggested by: danielsh

* .editorconfig

(**/Makefile*, build-outputs.mk, build-outputs.mk.ezt): New stanzas.

* publish/faq.html (#svn-editor): Fix a typo (us -> use)

1.14 release notes: Document escaping of pathname args to $SVN_EDITOR

* docs/release-notes/1.14.html

(editor-filename-escaping): New section. Documents the pathname escaping

implemented in r1874057, r1874093, and r1875230.

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

1.14 release notes: Fix title capitalization of one h2 heading

* docs/release-notes/1.14.html

(issues): All other h2 headings use title case. Now "Known Issues in the

Release" does, too.

1.14 release notes: A bit more hierarchical organization near end of document

* docs/release-notes/1.14.html

(support): New h2 section "Support and Release Planning."

(lts-release, svn-1.10-old-stable, svn-1.9-deprecation): Demote from h2 to

h3 within #support.

(enthusiastic-contributors): The above change makes the final "Enthusiastic

Contributors Welcome!" section stand out a bit more. Mention finishing

the Shelving and Checkpointing features among the things that people

could contribute to.

1.14 release notes: Refactor to put all experimental features in one area

Instead of scattering text about experimental features all over the release

notes, create a new h2 section, "Experimental Features," and consolidate all

such subsections there.

In particular, consolidate all sections related to shelving and

checkpointing, as a single subsection of Experimental Features.

This refactoring has the side benefit of eliminating numerous yellow

"Warning" boxes scattered throughout. Now there is just one such box at the

beginning of the Experimental Features section.

This refactoring incorporates some of the suggestions made by danielsh in

dev@ thread "Re: svn commit: r1875127..." on 2020/03/12, archived here:

https://lists.apache.org/thread.html/re39d729b04cdc6eae1cdb6cb3c0db85b2252b97f05b0fd55b0109a45%40%3Cdev.subversion.apache.org%3E

* docs/release-notes/1.14.html

(compatibility-shelving): New subsection, replacing #shelving-transition

with much shorter text and links to consolidated shelving section.

(experimental): New h2 section to contain all experimental feature and API

subsections.

(shelving): Promote from h4 to h3 per danielsh's suggestion and place

within experimental. Collect all shelving and checkpointing related text

here and rearrange for improved flow.

(shelving-enabling, shelving-v2, shelving-v3): New h4 subsections within

#shelving, to offer more structure to the existing text.

(shelving-transition): Move from Compatibility Concerns and demote to h4

within #shelving. Make title explicitly about upgrading 1.10 thru 1.13

shelves per danielsh's suggestion.

(shelving-checkpointing): Make this a h4 inside #shelving per danielsh's

suggestion.

(viewspec-output): Move this section into #experimental.

Suggested by: danielsh

(portions; not including the new Experimental Features section; that's

entirely my fault :-)

* tools/buildbot/slaves/bb-openbsd/svncheck-bindings.sh: Detect skipped

Python bindings tests and do not flag the tests as failed if they occur.

* libsvn_subr/mergeinfo-test.c

(test_rangelist_merge_random_non_validated_inputs): Indentation fix.

Plug error leaks in newly added mergeinfo tests.

Found by: svn-bb-openbsd buildbot

https://ci.apache.org/builders/svn-bb-openbsd/builds/510/steps/Test/logs/faillog-ra_svn-fsfs

[[[

subversion/tests/svn_test_main.c:475: (apr_err=SVN_ERR_TEST_FAILED)

svn_tests: E200006: Test crashed (run in debugger with '--allow-segfaults')

FAIL: mergeinfo-test 25: test rangelist merge random non-validated inputs

]]]

Core was generated by `mergeinfo-test'.

Program terminated with signal SIGABRT, Aborted.

#0 *_libc_abort () at /usr/src/lib/libc/stdlib/abort.c:57

57 memset(&sa, 0, sizeof(sa));

(gdb) up

#1 0x0000010070bcff68 in err_abort (data=0x10022671880)

156 abort();

(gdb) list

151 {

152 svn_error_t *err = data; /* For easy viewing in a debugger */

153 SVN_UNUSED(err);

154

155 if (!getenv("SVN_DBG_NO_ABORT_ON_ERROR_LEAK"))

156 abort();

157 return APR_SUCCESS;

158 }

159 #endif

160

(gdb) p *err

$3 = {apr_err = 235000,

message = 0x1001bc9c280 "In file 'subversion/libsvn_subr/mergeinfo.c' line 1096: assertion failed (rangelist_is_sorted(chg))", child = 0x0,

pool = 0x10085adbc00,

file = 0x10070d799b0 "subversion/libsvn_subr/mergeinfo.c", line = 1096}

(gdb)

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

(clear_failure_mode_errors): New helper function. Clears errors accumulated

during a test run.

(test_rangelist_merge_random_canonical_inputs,

test_rangelist_merge_random_semi_c_inputs,

test_rangelist_merge_random_non_validated_inputs): Clear accumulated errors.

HACKING: Document rolling dependencies.

* docs/community-guide/releasing.part.html

(#before-release-dependencies): New h4 under #before-release.

(#before-release-pristine-tools): New h4 for the preexisting content

of #before-release.

1.14 release notes: Shelving CLI is disabled by default.

* docs/release-notes/1.14.html

(shelving): Fix wrong row in table that documents SVN_EXPERIMENTAL_COMMANDS

and adjust text in paragraph above it accordingly. This text was based on

r1875037 but didn't take r1875039 into account.

Found by: danielsh

Another follow-up to r1875129:

* tools/dev/unix-build/Makefile.svn: Drop a ruby patch which isn't useful.

Follow up to r1875122: Actually fix (some of?) the crashes in Ruby.

* tools/dev/unix-build/Makefile.svn: Add more fixes I came up with while

debugging Ruby crashes. Patches still relevant to current versions of

Ruby (we're still on 2.4) have been submitted upstream.

Also, re-create the ruby patch properly instead of appending to an

existing patch file if already present.

1.14 release notes: Document selectable shelving implementation

* docs/release-notes/1.14.html

(shelving): Document that users can select between Shelving-v2 and

Shelving-v3 via the SVN_EXPERIMENTAL_COMMANDS environment

variable, as introduced in r1875037.

1.14 release notes: Remove misplaced end tag

* docs/release-notes/1.14.html

(new-feature-compatibility-table): Remove misplaced </sup> tag.

* tools/dev/unix-build/Makefile.svn: Add patch for Ruby which will hopefully

fix the bus errors we have been seeing on the svn-bb-openbsd buildbot.

I haven't yet confirmed that this really fixes the issue but since the

crash happens sporadically there is only one way to find out.

I have also found out that OpenBSD's port of Ruby disables the crashing

code path on sparc64. Which is a bandaid, not a real fix since the problem

could affect other platforms as well.

Follow-up to r1875103:

* tools/buildbot/slaves/bb-openbsd/svnclean.sh: Also run 'svn cleanup' on the

main working copy used by the buildbot. Apparently, buildbot won't handle

this step for us.

* tools/buildbot/slaves/bb-openbsd/svnclean.sh: Run 'svn cleanup' on the

unix-build working copy. Required to resume building after svn crashed.

Disable the SWIG-PY test for shelving API.

The experimental shelving API is not currently exposed through SWIG,

following r1875037.

* subversion/bindings/swig/python/tests/client.py

(test_shelf): Skip.

Adjust tests following r1875039 (disable shelving by default).
Let shelving be disabled by default.

Set the env. var. 'SVN_EXPERIMENTAL_COMMANDS' to a value that includes

'shelf2' or 'shelf3' to enable shelving v2 or v3 respectively.

* subversion/svn/svn.c

(sub_main): Default to no shelving if the var is not set.

* subversion/svn/svn.c

(add_commands): Add explicit casts to avoid compiler warnings.

Merge the 'decouple-shelving-cli' branch to trunk.

Summary:

Add the shelving v2 implementation from Subversion 1.11, as an alternative

to the shelving v3 implementation from Subversion 1.12.

They have substantially different pros and cons, so it is beneficial for the

user to be able to choose.

Make the shelving CLI version selectable by an environment variable:

env. var. not set => shelving v3 enabled

SVN_EXPERIMENTAL_COMMANDS=shelf3 => shelving v3 enabled

SVN_EXPERIMENTAL_COMMANDS=shelf2 => shelving v2 enabled

SVN_EXPERIMENTAL_COMMANDS= => no shelving CLI

    • ?
    /trunk/subversion/include/private/svn_client_shelf.h
    • ?
    /trunk/subversion/include/private/svn_client_shelf2.h
    • ?
    /trunk/subversion/libsvn_client/shelf2.c
    • ?
    /trunk/subversion/tests/cmdline/shelf2_tests.py
Happy (not-now-so-)new year, 2020!

* NOTICE,

* subversion/libsvn_subr/version.c (svn_version_extended):

Bump copyright year to 2020.

Add the shelving v2 implementation from Subversion 1.11, as an alternative

to the shelving v3 implementation from Subversion 1.12.

They have substantially different pros and cons, so it is beneficial for the

user to be able to choose.

Make the shelving CLI version selectable by an environment variable:

env. var. not set => shelving v3 enabled

SVN_EXPERIMENTAL_COMMANDS=shelf3 => shelving v3 enabled

SVN_EXPERIMENTAL_COMMANDS=shelf2 => shelving v2 enabled

SVN_EXPERIMENTAL_COMMANDS= => no shelving CLI

* subversion/svn/svn.c

Enable shelving v3 or v2 or neither, depending on the environment variable

SVN_EXPERIMENTAL_COMMANDS.

* subversion/include/private/svn_client_shelf2.h

* subversion/libsvn_client/shelf2.c

* subversion/svn/shelf2-cmd.c

* subversion/svn/shelf2-cmd.h

* subversion/tests/cmdline/shelf2_tests.py

New files, with contents copied from svn 1.11, with minor adjustments.

Move the experimental shelving API declarations into a dedicated header

file.

* subversion/include/private/svn_client_shelf.h

New file.

[This file was missed in the previous commit, r1874632.]

Move the experimental shelving API declarations into a dedicated header

file.

A step towards decoupling the experimental shelving CLI from the main CLI.

* subversion/include/private/svn_client_shelf.h

New file.

[This file was missed in this commit, and added in r1874633.]

* subversion/include/svn_client.h,

subversion/include/private/svn_client_private.h

(svn_client__shelf_*): Move into svn_client_shelf.h.

* subversion/libsvn_client/diff.c,

subversion/libsvn_client/shelf.c,

subversion/libsvn_client/status.c

Include the new header.