subversion

Checkout Tools
  • last updated 48 mins ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1875130 is being indexed.

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.

Initialize the 'svn x-shelf-*' commands programmatically at run time,

instead of hard-coding them in svn's main command table.

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

* subversion/svn/cl.h

(svn_cl__longopt_t,

SVN_CL__LOG_MSG_OPTIONS): Move to here from svn.c.

(svn_cl__shelf_*,

svn_cl__wc_copy_mods): Remove these declarations.

(svn_cl__cmd_table): Change to a pointer.

* subversion/svn/shelf-cmd.c

(svn_cl__shelf_*,

svn_cl__wc_copy_mods): New 'static', no longer external.

(svn_cl__cmd_table_shelf3): New command table, with contents moved to here

from svn_cl__cmd_table.

* subversion/svn/shelf-cmd.h

New.

* subversion/svn/svn.c

(svn_cl__cmd_table_main): Renamed from 'svn_cl__cmd_table'. Move

shelf-related entries to svn_cl__cmd_table_shelf3 in shelf-cmd.c.

(svn_cl__cmd_table): Change to a pointer.

(add_commands): New.

(sub_main): Call add_commands(). Rewrite a check because the shelving

command functions are no longer externally visible.

Make the 'decouple-shelving-cli' branch.
Announce Subversion's 20th Anniversary

* index.html

(news-20200227): New section. Announce anniversary with link to

press release and call to action.

* news.html

(news-20200227): New section. Copied verbatim from above.

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.

(shelving-transition,

checkpointing,

shelving,

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/validate-files.py

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

(Commands.svnlook_changed):

+ 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

sys.stderr.encoding

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/validate-files.py

(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

(svnadmin-rev-size,

sqlite-omit-wal,

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'.

(svnadmin-rev-size,

help-hide-experimental,

sqlite-omit-wal,

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.

(authz-groups,

plaintext-passwords-disabled,

repos-wc-copy,

svn-list,

svn-info,

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

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