Apache Software Foundation
[S] Subversion

Apache Subversion 1.12 Release Notes

This is work in progress. Subversion 1.12 has not been released yet.

Subversion 1.12 is a 6-month regular release. See Subversion 1.12 is a Regular Release below.

What's New in Apache Subversion 1.12

Apache Subversion 1.12 is a superset of all previous Subversion releases, and is as of the time of its release considered the current "best" release. Any feature or bugfix in 1.0.x through 1.11.x is also in 1.12, but 1.12 contains features and bugfixes not present in any earlier release. The new features will eventually be documented in a 1.12 version of the free Subversion book (svnbook.red-bean.com).

This page describes only major changes. For a complete list of changes, see the 1.12 section of the CHANGES file.

Compatibility Concerns

Older clients and servers interoperate transparently with 1.12 servers and clients. However, some of the new 1.12 features may not be available unless both client and server are the latest version. There are also cases where a new feature will work but will run less efficiently if the client is new and the server old.

There is no need to dump and reload your repositories. Subversion 1.12 servers can read and write to repositories created by earlier versions. To upgrade an existing server installation, just install the newest libraries and binaries on top of the older ones.

Subversion 1.12 maintains API/ABI compatibility with earlier releases, by only adding new functions, never removing old ones. A program written to any previous 1.x API can both compile and run using 1.12 libraries. However, a program written for 1.12 cannot necessarily compile or run against older libraries.

There may be limited cases where the behavior of old APIs has been slightly modified from previous releases. These are cases where edge cases of the functionality has been deemed buggy, and therefore improved or removed. Please consult the API errata for more detailed information on what these APIs are and what impact these changes may have.

New Feature Compatibility Table

New Feature Minimum Client1 Minimum Server Minimum Repository Notes
Shelving (experimental) 1.12 any any shelves created by 1.10 are not compatible—see the 1.11 transition notes
Commit checkpointing (experimental) 1.12 any any

Upgrading the Working Copy

Subversion 1.12 uses the same working copy format as Subversion 1.8 through 1.11.

Before using Subversion 1.12 with an existing Subversion 1.7 or older working copy, users will be required to run the svn upgrade command to upgrade working copy metadata to the new format. This command may take a while in some cases, and for some users, it may be more practical to simply checkout a new working copy.

Note: Subversion 1.12 cannot upgrade working copies that a 1.6 client would have refused to operate upon before an svn cleanup was run (with a 1.6 client). In other words, before upgrading to 1.8 or newer, a 1.6 or older client must be used to run svn cleanup on all 1.6 or older working copies that require cleanup. Likewise, Subversion 1.12 cannot upgrade corrupt working copies. Unfixable problems can arise from missing or corrupt meta-data inside .svn directories. Such damage to the working copy is permanent, and cannot be fixed even if svn cleanup is run prior to the upgrade.

If your working copy does not upgrade cleanly, please check out a new one.

New Features

Enhancements and Bugfixes

Command-line client improvements (client)

Improved Shelving (experimental)

Shelving (issue #3625), first introduced in Subversion 1.10, is improved in 1.12 to handle more kinds of changes more robustly.

WARNING: This feature is designated "EXPERIMENTAL" in 1.12. It is being released in an early form while development continues. It is expected to change significantly during and after the 1.12.x series. There is no promise of backward compatibility while it remains experimental.

Commit checkpointing (experimental)

Commit checkpointing (issue #3626), first introduced in Subversion 1.11, is improved in 1.12 to handle more kinds of changes more robustly.

WARNING: This feature is designated "EXPERIMENTAL" in 1.12. It is being released in an early form while development continues. It is expected to change significantly during and after the 1.12.x series. There is no promise of backward compatibility while it remains experimental.

Improvements to the interactive conflict resolver

The interactive conflict resolver now supports more conflict situations.

Fixes for conflict resolver bugs found during the development of Subversion 1.12 have been backported to the Subversion 1.10 release series as well.

Server-side improvements

Client- and server-side improvements

API changes, improvements and language bindings (client and server)

Known issues in the release

There are some known issues in the Subversion 1.12 releases. These may be fixed in later 1.12.x releases.

Ruby bindings require swig 3.0.9

This section only affects those who build Subversion from a working copy. If you build Subversion from a tarball or zip file, you may skip this section.

The Ruby bindings are known not to build with swig version 3.0.8 (and only that version) due to swig issue #602. We recommend to use swig 3.0.9 or newer.

The failure is detected by the test suite. To test whether your version of swig is affected, run make check-swig-rb. (Some distros might have backported the swig patch into their swig-3.0.8 packages.)

The Perl and Python bindings are not affected.

Subversion 1.12 is a Regular Release

Subversion 1.12 is one of the new 6-month regular releases with an emphasis on introducing new features more quickly and a shorter support period. It will be supported for 6 months, and then will be superseded by the next regular release.

Subversion 1.11, the previous regular release, is no longer supported.

Subversion 1.9 and 1.10 are still supported, now being regarded as long-term support (LTS) releases. The next LTS release is expected to be numbered 1.14, to be released two years after 1.10.

For further details see How We Plan Releases.