summaryrefslogtreecommitdiff
path: root/debian/svn_1.14_releasenotes.html
diff options
context:
space:
mode:
Diffstat (limited to 'debian/svn_1.14_releasenotes.html')
-rw-r--r--debian/svn_1.14_releasenotes.html1560
1 files changed, 1560 insertions, 0 deletions
diff --git a/debian/svn_1.14_releasenotes.html b/debian/svn_1.14_releasenotes.html
new file mode 100644
index 0000000..8b8dd8d
--- /dev/null
+++ b/debian/svn_1.14_releasenotes.html
@@ -0,0 +1,1560 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Apache Subversion 1.14 LTS Release Notes</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<base href="https://subversion.apache.org"/>
+<style type="text/css">
+ @import url("/style/site.css");
+</style>
+</head>
+
+<body>
+<div id="site-banner">
+<div style="float: right; width: 379px; height: 80px; font-style: italic;
+ text-align: center;">
+ <a href="https://www.apache.org/"
+ ><img src="/images/apache-logo.png"
+ alt="Apache Software Foundation" /></a>
+</div>
+<a href="/">
+ <img src="/images/svn-square.jpg"
+ alt="[S]"
+ style="width: 80px; height: 80px;"/>
+ <img src="/images/svn-name-banner.jpg"
+ alt="Subversion"
+ style="width: 320px; height: 80px;"/></a>
+</div> <!-- #site-banner -->
+
+<div id="site-nav">
+<div id="site-nav-menu">
+<ul>
+ <li>About Subversion
+ <ul>
+ <li><a href="/news.html">News</a></li>
+ <li><a href="/features.html">Features</a></li>
+ <li><a href="/docs/">Documentation</a></li>
+ <li><a href="/faq.html">FAQ</a></li>
+ <li><a href="/roadmap.html">Roadmap</a></li>
+ <li><a href="/security/">Security</a></li>
+ <li><a href="/quick-start">Quick Start</a></li>
+ </ul>
+ </li>
+ <li>Getting Subversion
+ <ul>
+ <!-- A parameter in the form '?update=YYYYMMDDhhmm' may
+ be appended to 'download.cgi' to only offer mirrors that have
+ synced after the specified date. We update it after a security
+ release when the email announcement is less than 24 hours after
+ the upload to /dist/release, in order to prevent offering mirrors
+ that don't carry the just-released artifacts. -->
+ <li><a href="/packages.html">Binary Packages</a></li>
+ <li><a href="/download.cgi">Source Download</a></li>
+ <li><a href="/docs/release-notes/">Release Notes</a></li>
+ </ul>
+ </li>
+ <li>Community
+ <ul>
+ <li><a href="/mailing-lists.html">Mailing Lists</a></li>
+ <li><a href="/reporting-issues.html">Reporting Issues</a></li>
+ <li><a href="https://cwiki.apache.org/confluence/display/SVN/">Wiki</a></li>
+ <li><a href="/contributing.html">Getting Involved</a></li>
+ <li><a href="/source-code.html">Source Code</a></li>
+ </ul>
+ </li>
+ <li>About the <acronym title="Apache Software Foundation">ASF</acronym>
+ <ul>
+ <li><a class="linkaway"
+ href="https://www.apache.org/licenses/">Licenses</a></li>
+ <li><a class="linkaway"
+ href="https://www.apache.org/foundation/sponsorship.html">Donate</a></li>
+ <li><a class="linkaway"
+ href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
+ </ul>
+ </li>
+</ul>
+</div> <!-- #site-nav-menu -->
+
+<div id="site-search">
+ <form action="https://www.google.com/search" method="get"
+ style="margin-top: 10px; margin-bottom: 10px; display: inline;">
+ <div style="display: inline;">
+ <input value="subversion.apache.org" name="sitesearch" type="hidden" />
+ <input name="q" id="query" type="text" placeholder="Search..."
+ style="width: 10em"
+ />
+ <input name="Search" value="Go" type="submit"/>
+ </div>
+ </form>
+</div> <!-- #site-search -->
+
+<div id="site-svnbook-block">
+<p>Read the official Subversion
+ documentation <a href="http://svnbook.org" class="linkaway">online</a>!</p>
+<p><a href="http://svnbook.org/"
+ ><img src="/images/svnbook-cover.jpg"
+ alt="Version Control With Subversion"/></a></p>
+</div> <!-- #site-svnbook-block -->
+
+<div id="copyright">
+<p>Copyright &#169; 2018 <a href="https://www.apache.org/">The Apache
+ Software Foundation</a>, Licensed under
+ the <a href="https://www.apache.org/licenses/LICENSE-2.0" >Apache
+ License, Version 2.0</a>. Apache, Apache Subversion, and
+ the Apache feather logo are trademarks of The Apache Software
+ Foundation. Subversion and the Apache Subversion logo are
+ registered trademarks of The Apache Software Foundation.</p>
+</div> <!-- #copyright -->
+
+</div> <!-- #site-nav -->
+
+<div id="site-content">
+<div id="site-notice">
+
+<!-- PUT SITE-WIDE NOTICES HERE AS NECESSARY -->
+
+</div> <!-- #site-notice -->
+
+<!-- **************** BEGIN CONTENT ***************** -->
+
+<!-- ************************************************ -->
+<!-- Sections start with "###" are either templates -->
+<!-- or TODOs. Remove them before release. -->
+<!-- ************************************************ -->
+
+<h1 style="text-align: center">Apache Subversion 1.14 LTS Release Notes</h1>
+
+<!-- ### -->
+
+<div class="h2" id="news">
+<h2>What's New in Apache Subversion 1.14
+ <a class="sectionlink" href="#news"
+ title="Link to this section">&para;</a>
+</h2>
+
+<ul>
+ <!-- The main changes...
+ <li><a href="#"
+ >###</a></li>
+ -->
+ <li><a href="#python3"
+ >Support for Python 3.x</a></li>
+ <li><a href="#python2"
+ >Support for Python 2.7 is being phased out</a></li>
+ <li><a href="#py3c"
+ >New Build-Time Dependency: py3c</a></li>
+ <li><a href="#enhancements"
+ >Many enhancements and bug fixes</a></li>
+ <li><a href="#issues"
+ >Known issues in the release</a></li>
+ <!--
+ <li><a href="#troubleshooting"
+ >Troubleshooting issues specific to this release</a></li>
+ -->
+</ul>
+
+<p>Apache Subversion 1.14 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.13.x is also
+in 1.14, but 1.14 contains features and bugfixes not present in any
+earlier release.</p>
+
+<p>Because 1.14 is the next LTS release following 1.10, these release
+notes describe major changes since 1.10, including changes released in
+1.11.x through 1.13.x.</p>
+
+<p>This page describes only major changes. For a complete list of
+changes, see the 1.14 section of the <a
+href="https://svn.apache.org/repos/asf/subversion/trunk/CHANGES" >CHANGES</a>
+file.</p>
+
+</div> <!-- news -->
+
+<div class="h2" id="compatibility">
+<h2>Compatibility Concerns
+ <a class="sectionlink" href="#compatibility"
+ title="Link to this section">&para;</a>
+</h2>
+
+<p>Older clients and servers interoperate transparently with 1.14
+servers and clients. However, some of the new 1.14 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.</p>
+
+<p>There is <strong>no need</strong> to <a href="http://svnbook.red-bean.com/en/1.8/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnadmin"
+>dump and reload</a> your repositories.
+Subversion 1.14 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.</p>
+
+<p>Subversion 1.14 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.14 libraries. However, a program written for 1.14
+cannot necessarily compile or run against older libraries.</p>
+
+<p>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
+<a href="https://svn.apache.org/repos/asf/subversion/trunk/notes/api-errata/1.14/"
+>API errata</a> for more detailed information on what these APIs are
+and what impact these changes may have.</p>
+
+<div class="h3" id="new-feature-compatibility-table">
+<h3>New Feature Compatibility Table
+ <a class="sectionlink" href="#new-feature-compatibility-table"
+ title="Link to this section">&para;</a>
+</h3>
+<table border="1">
+ <tr>
+ <th>New Feature</th>
+ <th>Minimum Client<sup>1</sup></th>
+ <th>Minimum Server</th>
+ <th>Minimum Repository</th>
+ <th>Notes</th></tr>
+ <tr>
+ <td><a href="#svnadmin-rev-size"><tt>svnadmin rev-size</tt></a></td>
+ <td>n/a</td>
+ <td>1.13</td>
+ <td>any FSFS repo</td>
+ <td></td></tr>
+ <tr>
+ <td><a href="#svnadmin-build-repcache"><tt>svnadmin build-repcache</tt></a></td>
+ <td>n/a</td>
+ <td>1.14</td>
+ <td>FSFS format 4</td>
+ <td>see <tt>Filesystem Format</tt> in the output of <tt>svnadmin info /path/to/repo</tt></td></tr>
+ <tr>
+ <td>
+ <a href="#shelving">Shelving (experimental)</a>
+ </td>
+ <td>1.12</td>
+ <td>any</td>
+ <td>any</td>
+ <td>shelves created by 1.10 are not compatible&mdash;see
+ <a href="#shelving-transition">Upgrading 1.10&ndash;1.13 shelves to 1.14</a></td></tr>
+ <tr>
+ <td>
+ <a href="#shelving-checkpointing">Commit checkpointing (experimental)</a>
+ </td>
+ <td>1.12</td>
+ <td>any</td>
+ <td>any</td>
+ <td></td></tr>
+ <tr>
+ <td>
+ <a href="#viewspec-output">Viewspec output command (experimental)</a>
+ </td>
+ <td>1.11</td>
+ <td>any</td>
+ <td>any</td>
+ <td></td></tr>
+ <tr>
+ <td colspan="5"><sup>1</sup>Reminder: when using the <tt>file://</tt>
+ repository access method, the Subversion program is both the client
+ <em>and</em> the server.</td></tr>
+</table>
+
+</div> <!-- new-feature-compatibility-table -->
+
+<div class="h3" id="wc-upgrade">
+<h3>Upgrading the Working Copy
+ <a class="sectionlink" href="#wc-upgrade"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>Subversion 1.14 uses the same working copy format as Subversion 1.8 through 1.13.</p>
+
+<p>Before using Subversion 1.14 with an existing Subversion 1.7 or older
+working copy, users will be required to run the <tt>svn upgrade</tt> 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.</p>
+
+<p><strong>Note:</strong> Subversion 1.14 cannot upgrade working copies that
+a 1.6 client would have refused to operate upon before an <tt>svn cleanup</tt>
+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 <tt>svn cleanup</tt> on all 1.6 or older
+working copies that require cleanup. Likewise, Subversion 1.14 cannot upgrade
+corrupt working copies. Unfixable problems can arise from missing or corrupt
+meta-data inside <tt>.svn</tt> directories. Such damage to the working copy
+is permanent, and cannot be fixed even if <tt>svn cleanup</tt> is run prior
+to the upgrade.</p>
+
+<p>If your working copy does not upgrade cleanly, please check out a new one.
+</p>
+
+</div> <!-- wc-upgrade -->
+
+<div class="h3 experimental-feature" id="compatibility-shelving">
+<h3>Changes to Experimental Shelving Feature
+ <a class="sectionlink" href="#compatibility-shelving"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>Since 1.10, Subversion provides an experimental "Shelving" feature aimed
+at addressing <a href="https://issues.apache.org/jira/browse/SVN-3625">issue
+#3625</a>. There is no promise of backward compatibility for features
+designated "experimental."</p>
+
+<p>Shelving in 1.14 has changed significantly since 1.10 and is incompatible
+with shelves created by 1.10. See <a href="#shelving">Shelving and
+Checkpointing (experimental)</a> for the major changes and differences in
+commands. See its subsection, <a href="#shelving-transition">Upgrading
+1.10&ndash;1.13 shelves to 1.14</a> to learn how to recover 1.10 shelves in
+an existing working copy.</p>
+
+</div> <!-- compatibility-shelving -->
+
+<!-- (This section only makes sense when there are some issues listed in it.)
+<div class="h3" id="compat-misc">
+<h3>Miscellaneous Compatibility Notes
+ <a class="sectionlink" href="#compat-misc"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>There are some additional specific areas where changes made in this
+release might necessitate further adjustment by administrators or
+users. We'll cover those in this section.</p>
+
+</div> <!- - compat-misc - ->
+-->
+
+</div> <!-- compatibility -->
+
+<div class="h2" id="new-features">
+<h2>New Features
+ <a class="sectionlink" href="#new-features"
+ title="Link to this section">&para;</a>
+</h2>
+
+<div class="h3" id="svnadmin-rev-size">
+<h3>New <tt>svnadmin rev-size</tt> command
+ <a class="sectionlink" href="#svnadmin-rev-size"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>This change was first introduced in 1.13.</p>
+
+<p>Add an <tt>svnadmin rev-size</tt> command to report the total size in
+bytes of the representation on disk of a revision, including rev-props,
+but excluding FSFS indexes. For example:</p>
+
+<pre>
+ $ svnadmin rev-size /path/to/repo -r1
+ 1337 bytes in revision 1
+</pre>
+
+<p>(See <a href="http://svn.apache.org/r1857624">r1857624</a>.)</p>
+</div> <!-- svnadmin-rev-size -->
+
+<div class="h3" id="svnadmin-build-repcache">
+<h3>New <tt>svnadmin build-repcache</tt> command
+ <a class="sectionlink" href="#svnadmin-build-repcache"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>Representation Sharing (also called rep-sharing) is a data storage
+de-duplication feature first introduced in Subversion 1.6. It reduces the disk
+size of a repository by storing duplicate data only once. (See <a
+href="https://issues.apache.org/jira/browse/SVN-2286">issue #2286</a>.)</p>
+
+<p>This optional feature is enabled by default. It relies on a rep-cache
+database, which Subversion automatically maintains with the repository, to
+identify duplicate pieces of data.</p>
+
+<p>Over time, some administrators have disabled and/or re-enabled rep-sharing,
+which has the effect of excluding from the rep-cache any revisions that were
+committed while the feature was disabled.</p>
+
+<p>Subversion 1.14 introduces a new <tt>svnadmin build-repcache</tt>
+subcommand, which administrators can use to populate any missing entries in
+the rep-cache database for a specified revision range (or all revisions). (See
+<a href="http://svn.apache.org/r1875921">r1875921</a>.)</p>
+
+<p>For example, to process revisions 20 through 25, inclusive, and ensure that
+their data is known to the rep-cache:</p>
+
+<pre>
+ $ svnadmin build-repcache /path/to/repo -r20:25
+ * Processed revision 20.
+ * Processed revision 21.
+ * Processed revision 22.
+ * Processed revision 23.
+ * Processed revision 24.
+ * Processed revision 25.
+</pre>
+
+<p>If only one revision argument is given, <tt>svnadmin build-repcache</tt>
+will process that revision only:</p>
+
+<pre>
+ $ svnadmin build-repcache /path/to/repo -r20
+ * Processed revision 20.
+</pre>
+
+<p>If no revision argument is given, <tt>svnadmin build-repcache</tt> will
+process all revisions.</p>
+
+</div> <!-- svnadmin-build-repcache -->
+
+</div> <!-- new-features -->
+
+<div class="h2" id="enhancements">
+<h2>Enhancements and Bugfixes
+ <a class="sectionlink" href="#enhancements"
+ title="Link to this section">&para;</a>
+</h2>
+
+<!-- Don't need to highlight every bugfix, just major ones which aren't in
+ any patch release. -->
+
+<div class="h3" id="cmdline">
+<h3>Command-line client improvements (<em>client</em>)
+ <a class="sectionlink" href="#cmdline"
+ title="Link to this section">&para;</a>
+</h3>
+
+<div class="h4" id="log-quiet-diff">
+<h4><tt>svn log </tt> improvements
+ <a class="sectionlink" href="#log-quiet-diff"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p><tt>svn log --quiet </tt> and <tt>--diff </tt> options are no longer
+mutually exclusive. This makes it easier to display only the differences
+in a range of revisions. (See <a href="http://svn.apache.org/r1871916">r1871916</a>.)</p>
+
+</div> <!-- log-quiet-diff -->
+
+<div class="h4" id="info-show-item-changelist">
+<h4><tt>svn info </tt> improvements
+ <a class="sectionlink" href="#info-show-item-changelist"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>New <tt>changelist </tt> argument to <tt>svn info --show-item </tt>
+(<a href="http://svn.apache.org/r1869481">r1869481</a>).</p>
+
+</div> <!-- info-show-item-changelist -->
+
+<div class="h4" id="editor-filename-escaping">
+<h4>Escaping/quoting of pathname arguments to the user-defined editor
+ <a class="sectionlink" href="#editor-filename-escaping"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>When invoking the user-defined editor, such as during interactive conflict
+resolution, Subversion now performs escaping of any special characters in the
+pathname of the file to be edited. This corrects a problem that would occur
+previously when the file to be edited (and/or the path leading to it)
+contained spaces or other special characters. (See
+<a href="http://svn.apache.org/r1874057">r1874057</a>,
+<a href="http://svn.apache.org/r1874093">r1874093</a>, and
+<a href="http://svn.apache.org/r1875230">r1875230</a>.)</p>
+
+<p>Note that escaping is performed only on the pathname argument. As before,
+the editor itself is invoked through the shell and the user must properly
+quote/escape the command line used to launch it. This is intentional, as it
+allows the user to construct a shell command which itself contains command
+line arguments. See the related
+<a href="https://subversion.apache.org/faq.html#svn-editor">FAQ entry</a> for
+more on spaces and/or command line options in the editor path.</p>
+
+<p>The user-defined editor can be specified in the following ways, in this
+order of precedence:</p>
+
+<ul>
+ <li>The <tt>--editor-cmd</tt> command-line option</li>
+ <li>The <tt>$SVN_EDITOR</tt> environment variable</li>
+ <li>The <tt>editor-cmd</tt> runtime configuration option</li>
+ <li>The <tt>$VISUAL</tt> environment variable</li>
+ <li>The <tt>$EDITOR</tt> environment variable</li>
+</ul>
+
+<p>The escaped pathname of the file to be edited is passed to the editor as
+its last command line argument.</p>
+
+<p>For example, suppose that <tt>$SVN_EDITOR</tt> is set as follows:</p>
+
+<pre>SVN_EDITOR='vim -N --'
+export SVN_EDITOR
+</pre>
+
+<p>Furthermore, suppose 'svn up' finds a text conflict in a file called
+<tt>foo bar.txt</tt>:</p>
+
+<pre>
+$ svn up
+Updating '.':
+C foo bar.txt
+Updated to revision 2.
+Summary of conflicts:
+ Text conflicts: 1
+Merge conflict discovered in file 'foo bar.txt'.
+Select: (p) Postpone, (df) Show diff, (e) Edit file, (m) Merge,
+ (s) Show all options: <b>e</b>
+</pre>
+
+<p>When Subversion launches the editor, the spaces in <tt>vim -N --</tt> will
+<strong>not</strong> be escaped, allowing vim to be invoked with <tt>-N</tt>
+and <tt>--</tt> as its first two arguments, but the space in
+<tt>foo bar.txt</tt> <strong>will</strong> be escaped.</p>
+
+</div> <!-- editor-filename-escaping -->
+
+<div class="h4" id="conflict-resolver">
+<h4>Improvements to the interactive conflict resolver
+ <a class="sectionlink" href="#conflict-resolver"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Since its introduction in 1.10, the new interactive conflict resolver has
+received various improvements.</p>
+
+<p>Starting in 1.11, the interactive conflict resolver supports more conflict
+situations which involve moved files and directories. Specifically, many tree
+conflicts which report a "locally missing" item, as a result of an item having
+moved on the merge source branch, can now be resolved automatically.</p>
+
+<p>For example, when a file edit is cherry-picked from a branch on which
+the edited file has been renamed, the edit will now be applied to the file's
+location in the merge target branch, provided it has not been renamed
+on that branch as well. For details, see
+<a href="https://issues.apache.org/jira/browse/SVN-4694">issue #4694</a>,
+"Unresolvable tree conflict when cherrypicking a file-edit after file was
+moved on source branch".</p>
+
+<p>Furthermore, since 1.12, the interactive conflict resolver supports some
+cases where items were moved to disparate locations. Support for unversioned
+items in the working copy has been improved as well. The table below lists
+these cases and available resolution options for each.</p>
+
+<table border="1">
+ <tr>
+ <th>local change</th>
+ <th>incoming change</th>
+ <th>operation</th>
+ <th>resolution options</th>
+ </tr>
+ <tr>
+ <td><ul>
+ <li>move file</li>
+ </ul></td>
+ <td><ul>
+ <li>move file</li>
+ </ul></td>
+ <td>update, merge</td>
+ <td><ul>
+ <li>merge<br>(applies textual changes only and leaves the tree structure
+ of the working copy as it is)
+ <li>move and merge<br>(changes the file's location in the working copy
+ to match that of the merge source before merging changes)
+ </ul></td>
+ </tr>
+ <tr>
+ <td><ul>
+ <li>move directory</li>
+ </ul></td>
+ <td><ul>
+ <li>move directory</li>
+ </ul></td>
+ <td>merge</td>
+ <td><ul>
+ <li>merge<br>(applies changes to the corresponding directory and leaves
+ the tree structure of the working copy as it is)
+ <li>move and merge<br>(changes the directory's location in the working
+ copy to match that of the merge source before merging changes)
+ </ul></td>
+ <tr>
+ <td><ul>
+ <li>unversioned file</li>
+ </ul></td>
+ <td><ul>
+ <li>add file</li>
+ </ul></td>
+ <td>update, switch </td>
+ <td><ul>
+ <li>merge<br>(merges the unversioned file with the incoming file)
+ </ul></td>
+ </tr>
+ <tr>
+ <td><ul>
+ <li>unversioned directory</li>
+ </ul></td>
+ <td><ul>
+ <li>add directory</li>
+ </ul></td>
+ <td>update, switch </td>
+ <td><ul>
+ <li>merge<br>(re-adds directory to working copy but leaves any on-disk
+ files as they were)
+ </ul></td>
+ </tr>
+</table>
+
+<p>During <tt>svn update</tt>, the deletion of a directory which contains
+unversioned items but is otherwise unmodified no longer causes a tree
+conflict. This avoids tree conflicts caused by software build artifacts
+in the working copy, for example.</p>
+
+<p>Several bugs have been fixed in the conflict resolver, including:
+<ul>
+<li><a href="https://issues.apache.org/jira/browse/SVN-4744">Issue #4744</a>
+&quot;assertion failed (start_rev &gt; end_rev)&quot;</li>
+<li><a href="https://issues.apache.org/jira/browse/SVN-4766">Issue #4766</a>
+&quot;resolver adds unrelated moves to move target list&quot;</li>
+<li>A problem where the resolver mistakenly
+<a href="https://svn.apache.org/r1839662">searched back through
+the entire history of the repository</a></li>
+<li>A case where text conflicts were created with the incoming changes
+theirs) and local changes (mine) swapped within text conflict markers. This
+caused unexpected results when the <tt>svn resolve</tt> command was used with
+the <tt>--accept theirs</tt> or <tt>--accept mine</tt> options. This is fixed
+as of 1.12.</li>
+</ul>
+</p>
+
+<p>Fixes for conflict resolver bugs found during the development of
+Subversion 1.11 and 1.12 have been backported to the
+<a href="1.10.html">Subversion 1.10</a> release series as well.</p>
+
+</div> <!-- conflict-resolver -->
+
+<div class="h4" id="info-show-item">
+<h4>Additions to <tt>svn info --show-item</tt>
+ <a class="sectionlink" href="#info-show-item"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p>Add '<tt>schedule</tt>' and '<tt>depth</tt>' items to '<tt>svn info --show-item</tt>' (<a href="http://svn.apache.org/r1827032">r1827032</a>).</p>
+
+</div> <!-- info-show-item -->
+
+<div class="h4" id="save-client-cert-pw">
+<h4>Allow the client cert password to be saved
+ <a class="sectionlink" href="#save-client-cert-pw"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p>Allow the client cert password to be saved (<a href="http://svn.apache.org/r1836762">r1836762</a>).</p>
+
+</div> <!-- save-client-cert-pw -->
+
+<div class="h4" id="help-hide-experimental">
+<h4><tt>svn help</tt> hides experimental commands by default
+ <a class="sectionlink" href="#help-hide-experimental"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.13.</p>
+
+<p>By default, <tt>svn help</tt> no longer lists experimental commands.
+To show experimental commands, use <tt>svn help -v</tt> or
+<tt>svn help --verbose</tt>. (See <a href="https://issues.apache.org/jira/browse/SVN-4766">issue #4828</a>.)</p>
+
+</div> <!-- help-hide-experimental -->
+
+<div class="h4" id="sqlite-omit-wal">
+<h4>Improved performance for working copy commands like <tt>svn status</tt>
+ <a class="sectionlink" href="#sqlite-omit-wal"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.13.</p>
+
+<p>Some local operations, such as <tt>svn status</tt> on a large working copy,
+now perform more quickly as a result of reduced I/O. This is achieved by
+disabling SQLite's WAL (write-ahead logging) feature, which Subversion does
+not use, but which introduces more I/O when left enabled.
+(See <a href="http://svn.apache.org/r1865523">r1865523</a>.)</p>
+
+</div> <!-- sqlite-omit-wal -->
+
+</div> <!-- cmdline -->
+
+<div class="h3" id="server-side-improvements">
+<h3>Server-side improvements
+ <a class="sectionlink" href="#server-side-improvements"
+ title="Link to this section">&para;</a>
+</h3>
+
+<div class="h4" id="issue-4767">
+<h4><tt>svnadmin dump</tt> shouldn't canonicalize <tt>svn:date</tt>
+ (<a href="https://issues.apache.org/jira/browse/SVN-4767">issue #4767</a>)
+ <a class="sectionlink" href="#issue-4767"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p><tt>svnadmin dump</tt> no longer attempts to canonicalize the
+ <tt>svn:date</tt> revision property value in its output. The dump output
+ will now contain the value exactly as it exists in the repository.</p>
+
+</div> <!-- issue-4767 -->
+
+<div class="h4" id="authz-groups">
+<h4>Empty group definitions in authz rules
+ <a class="sectionlink" href="#authz-groups"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+
+<p>Subversion servers will now ignore empty group definitions in their
+path-based authorization rules. The <tt>svnauthz</tt> command will print
+a warning if it detects empty group definitions.</p>
+</div> <!-- authz-groups -->
+
+<div class="h4" id="mod-dav-svn-twice-hint">
+<h4>Provide a hint about a possible mod_dav_svn misconfiguration
+ <a class="sectionlink" href="#mod-dav-svn-twice-hint"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.13.</p>
+
+<p>Add a hint about a possible mod_dav_svn misconfiguration: When warning
+about an overlapping configuration, if two configuration blocks are for the
+same URL, then hint that the problem may be including the same configuration
+twice. (See <a href="http://svn.apache.org/r1866738">r1866738</a>.)</p>
+
+</div> <!-- mod-dav-svn-twice-hint -->
+
+</div> <!-- server-side-improvements -->
+
+<div class="h3" id="client-server-improvements">
+<h3>Client- and server-side improvements
+ <a class="sectionlink" href="#client-server-improvements"
+ title="Link to this section">&para;</a>
+</h3>
+
+<div class="h4" id="plaintext-passwords-disabled">
+<h4>Plaintext passwords on disk disabled by default
+ <a class="sectionlink" href="#plaintext-passwords-disabled"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+
+<p>On Unix-like systems, client-side storage of passwords in plaintext on
+disk is now disabled by default <em>at compile-time</em>.
+Password caching mechanisms based on Gnome Keyring, Kwallet, or GPG-Agent,
+are recommended instead.</p>
+
+<p>This change does not affect Windows or Mac OS platforms, where passwords
+have always been stored in an encrypted representation.</p>
+</div> <!-- plaintext-passwords-disabled -->
+
+<div class="h4" id="repos-wc-copy">
+<h4>Improved copying from repository source to working copy target
+ <a class="sectionlink" href="#repos-wc-copy"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+
+<p>Behaviour of copy operations with a repository source and a working copy
+target has been improved:</p>
+
+<ul>
+<li>Existing parent directories are now handled correctly.</li>
+<li>Peg and operative revisions are now handled correctly (see
+<a href="https://issues.apache.org/jira/browse/SVN-4785">issue #4785</a>
+for details).</li>
+</ul>
+</div> <!-- repos-wc-copy -->
+
+<div class="h4" id="svn-list">
+<h4><tt>svn list</tt> improvements
+ <a class="sectionlink" href="#svn-list"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+<p>The <tt>svn list</tt> command now avoids truncation of long author names
+by dynamically adjusting the width of columns displayed.</p>
+<p>The <tt>svn list</tt> command now supports a <tt>--human-readable</tt>
+(<tt>-H</tt>) option which will display sizes in human-readable units
+(Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes and Petabytes).</p>
+</div> <!-- svn-list -->
+
+<div class="h4" id="svn-info">
+<h4><tt>svn info</tt> improvements
+ <a class="sectionlink" href="#svn-info"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+<p>The <tt>svn info</tt> command can now display the size of files in the
+repository. The file size is only displayed if the target of <tt>svn info</tt>
+is a file URL.</p>
+</div> <!-- svn-info -->
+
+<div class="h4" id="svn-cleanup">
+<h4><tt>svn cleanup</tt> improvements
+ <a class="sectionlink" href="#svn-cleanup"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.12.</p>
+<p>The <tt>svn cleanup</tt> command, when asked to remove unversioned or
+ignored items, will now remove directories even if they are write-protected.</p>
+</div> <!-- svn-cleanup -->
+
+</div> <!-- client-server-improvements -->
+
+<div class="h3" id="apis">
+<h3>API changes, improvements and language bindings
+ (<em>client and server</em>)
+ <a class="sectionlink" href="#apis"
+ title="Link to this section">&para;</a>
+</h3>
+
+<div class="h4" id="python3">
+<h4>Support for Python 3.x
+ <a class="sectionlink" href="#python3"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Some optional features of Subversion utilize the Python scripting
+language.</p>
+
+<p>Subversion's SWIG Python bindings and Subversion's test suite now
+support Python 3.x (and newer).</p>
+
+<p>Of course, we welcome contributions that extend Subversion's Python
+support to include other versions, subject to the project's other needs.
+See the section
+<a href="#enthusiastic-contributors">Enthusiastic Contributors
+Welcome</a> below.</p>
+
+</div> <!-- python3 -->
+
+<div class="h4" id="python2">
+<h4>Support for Python 2.7 is being phased out
+ <a class="sectionlink" href="#python2"
+ title="Link to this section">&para;</a>
+</h4>
+
+<div class="notice">
+<p><strong>Python is Optional.</strong>
+Read more <a href="#pythonoptional">below</a>.</p>
+</div> <!-- notice -->
+
+<p>As of 1 January 2020, <a href="https://www.python.org/dev/peps/pep-0373/"
+>Python 2.7 has reached end of life</a>. All users are strongly encouraged
+to move to Python 3.</p>
+
+<p>As Subversion 1.14 is a Long Term Support (LTS) release with
+planned support into 2024, well beyond end-of-life for Python 2.7, the
+core Subversion developers cannot commit to supporting and testing
+with Python 2.7, or to fixing bugs that affect Python 2.7 only, for
+the duration of this support period.</p>
+
+<p>This means that although Subversion 1.14.0 still technically works
+with Python 2.7, any later 1.14.x point release may drop this support
+if it becomes too difficult to maintain.</p>
+
+<p>If you must continue using Python 2.7, our previous Long Term Support
+release, Subversion 1.10, is supported until 2022. Python 2.7 support
+will not be removed from Subversion 1.10.</p>
+
+<p>Of course, we welcome contributions that extend Subversion's Python
+2.7 support, subject to the project's other needs. See the section
+<a href="#enthusiastic-contributors">Enthusiastic Contributors
+Welcome</a> below.</p>
+
+</div> <!-- python2 -->
+
+ <div class="h4" id="pythonoptional">
+<h4>Python is Optional
+ <a class="sectionlink" href="#pythonoptional"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Subversion does <strong>not</strong> require Python for its basic
+operation. Python is only required for building Subversion and for
+using Subversion's SWIG Python bindings. If you do not do either of
+these things, then this change does not affect you.</p>
+
+<p>The Python bindings are used by:</p>
+
+<ul>
+<li>Third-party programs (e.g.,
+ <a href="https://github.com/viewvc/viewvc/">ViewVC</a>)</li>
+<li>Scripts distributed with Subversion itself in the tools/
+ subdirectory.</li>
+<li>Any in-house scripts you may have.</li>
+</ul>
+
+<p>In more detail, Python is required for doing any of the
+following:</p>
+
+<ul>
+<li>Use the SWIG Python bindings</li>
+<li>Use the ctypes Python bindings</li>
+<li>Build Subversion on Windows</li>
+<li>Build Subversion from a tarball on Unix-like systems and run
+ Subversion's test suite</li>
+<li>Build Subversion from a working copy checked out from Subversion's
+ own repository</li>
+<li>Build the SWIG Python bindings</li>
+<li>Build the ctypes Python bindings</li>
+</ul>
+
+<p>Python is <strong>not</strong> required for doing any of the
+following:</p>
+
+<ul>
+<li>Use the core command-line binaries (svn, svnadmin, svnsync,
+ &hellip;)</li>
+<li>Use Subversion's C libraries</li>
+<li>Use any of Subversion's other language bindings</li>
+<li>Build Subversion from a tarball on Unix-like systems without
+ running Subversion's test suite</li>
+</ul>
+
+</div> <!-- pythonoptional -->
+
+<div class="h4" id="py3c">
+<h4>New Build-Time Dependency: py3c
+ <a class="sectionlink" href="#py3c"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Subversion's support for Python 3.x SWIG bindings introduces a new
+optional dependency on the <a href="https://github.com/encukou/py3c"
+>Python 3 Compatibility layer for C extensions (py3c)</a>.</p>
+
+<p>You need py3c to build the SWIG Python bindings, regardless of the
+version of Python. As py3c is a header-only library, it is needed only
+to build the bindings, not to use them.</p>
+
+<p>The convenience script that downloads Subversion's minimal
+build-time dependencies,
+<a href="https://svn.apache.org/viewvc/subversion/branches/1.14.x/get-deps.sh"
+>get-deps.sh</a>, has been updated to download py3c. This script is
+found in the source distribution's root directory. For the full list
+of Subversion's dependencies, see the
+<a href="https://svn.apache.org/viewvc/subversion/branches/1.14.x/INSTALL"
+>INSTALL</a> file in the same directory.</p>
+
+</div> <!-- py3c -->
+
+<div class="h4" id="swig4-on-py3">
+<h4>Support for building with SWIG 4 on Python 3.x
+ <a class="sectionlink" href="#swig4-on-py3"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p><em>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.</em></p>
+
+<p>Subversion's SWIG Python bindings can be built with SWIG 4 on Python 3.
+The bindings can be built with SWIG 3.x on Python 3 as well (the
+<tt>-modern</tt> argument to SWIG is automatically used). (See
+<a href="http://svn.apache.org/r1869853">r1869853</a>.)</p>
+
+</div> <!-- swig4-on-py3 -->
+
+<div class="h4" id="javahl">
+<h4>JavaHL Updates
+ <a class="sectionlink" href="#javahl"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p>The JavaHL bindings have been updated to be compatible with Java 10. Due
+ to required build changes, JavaHL now requires at least Java 8 to compile.</p>
+
+</div> <!-- javahl -->
+
+</div> <!-- apis -->
+
+</div> <!-- enhancements -->
+
+<div class="h2" id="experimental">
+<h2>Experimental Features
+ <a class="sectionlink" href="#experimental"
+ title="Link to this section">&para;</a>
+</h2>
+
+<!--
+<p>There are no experimental features in this release at the moment.</p>
+-->
+
+<div class="notice">
+ <p>The Subversion 1.14.x release includes several "EXPERIMENTAL" features.
+ These are released in an early form for purposes of testing, feedback, and
+ to entice interested users to <a href="#enthusiastic-contributors"
+ >contribute</a> to their further development.</p>
+
+ <p><span style="color: red"><b>WARNING:</b></span> Features and APIs which
+ are designated "EXPERIMENTAL" are considered incomplete and may change
+ significantly during and after the 1.14.x series. There is no promise of
+ backward compatibility, even from one point release to another, while they
+ remain experimental.</p>
+</div>
+
+<div class="h3 experimental-feature" id="shelving">
+<h3>Shelving and Checkpointing (experimental)
+ <a class="sectionlink" href="#shelving"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>Shelving (<a href="https://issues.apache.org/jira/browse/SVN-3625">issue
+#3625</a>), first introduced in Subversion 1.10, has been developed further to
+handle more kinds of changes more robustly. Two different versions of shelving
+CLIs, each with different pros and cons, are available for experimentation.
+Also, changes have been made under the hood to support a related feature,
+Commit Checkpointing (<a href="https://issues.apache.org/jira/browse/SVN-3626"
+>issue #3626</a>).</p>
+
+<p>You can read <a href="https://cwiki.apache.org/confluence/x/MxbcC">a
+review</a> of the development of experimental support for shelving to find
+out more about the differences between the versions, and the further work
+that would be needed in Subversion to make shelving a first-class
+feature.</p>
+
+<div class="notice">
+ <p>Shelving in 1.14 is incompatible with shelves created by 1.10. See
+ <a href="#shelving-transition">Upgrading 1.10&ndash;1.13 shelves to 1.14</a>
+ to learn how to recover 1.10 shelves in a working copy.</p>
+</div>
+
+<p>Shelving commands (see their help for details):</p>
+<ul>
+ <li><tt>svn x-shelf-diff</tt></li>
+ <li><tt>svn x-shelf-drop</tt></li>
+ <li><tt>svn x-shelf-list, x-shelves</tt></li>
+ <li><tt>svn x-shelf-list-by-paths</tt></li>
+ <li><tt>svn x-shelf-log</tt></li>
+ <li><tt>svn x-shelf-save</tt></li>
+ <li><tt>svn x-shelve</tt></li>
+ <li><tt>svn x-unshelve</tt></li>
+</ul>
+
+<p>Differences in the main shelving commands since 1.10:</p>
+
+<table>
+<tr><th>Subversion 1.10 command</th>
+ <th>Subversion 1.14 equivalent</th></tr>
+<tr><td><tt>svn [x-]shelve [--keep-local] SHELF [PATH...]</tt></td>
+ <td>works similarly; saves a new version each time it is used</td></tr>
+<tr><td><tt>svn [x-]unshelve [SHELF]</tt></td>
+ <td><tt>svn x-unshelve --drop [SHELF]</tt></td></tr>
+<tr><td><tt>svn [x-]unshelve --keep-shelved [SHELF]</tt></td>
+ <td><tt>svn x-unshelve [SHELF]</tt></td></tr>
+<tr><td><tt>svn [x-]shelve --delete SHELF</tt></td>
+ <td><tt>svn x-shelf-drop SHELF</tt></td></tr>
+<tr><td><tt>svn [x-]shelves</tt> or <tt>svn [x-]shelve --list</tt></td>
+ <td><tt>svn x-shelves</tt> or <tt>svn x-shelf-list</tt></td></tr>
+</table>
+
+<div class="h4 experimental-feature" id="shelving-enabling">
+<h4>Choosing and Enabling a Shelving CLI
+ <a class="sectionlink" href="#shelving-enabling"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Because shelving is a work-in-progress, the shelving CLI is disabled by
+default. Users who wish to experiment with shelving should enable one of the
+two available shelving CLI implementations by setting an environment variable
+(see <a href="http://svn.apache.org/r1875037">r1875037</a> and
+<a href="http://svn.apache.org/r1875039">r1875039</a>.)</p>
+
+<p>The two implementations are "Shelving-v2" as introduced in 1.11, and
+"Shelving-v3" as introduced in 1.12. These are incompatible with each other,
+but both are offered because they have substantially different pros and
+cons. (See <a href="https://cwiki.apache.org/confluence/x/MxbcC">the
+review</a>.)</p>
+
+<p>The shelving CLI implementation is selected by an environment variable,
+<tt>SVN_EXPERIMENTAL_COMMANDS</tt>, as follows:</p>
+
+<table border="1">
+ <tr>
+ <th>environment variable</th>
+ <th>shelving CLI implementation</th>
+ </tr>
+ <tr>
+ <td><tt>SVN_EXPERIMENTAL_COMMANDS=shelf3</tt></td>
+ <td>Shelving-v3, as introduced in 1.12</td>
+ </tr>
+ <tr>
+ <td><tt>SVN_EXPERIMENTAL_COMMANDS=shelf2</tt></td>
+ <td>Shelving-v2, as introduced in 1.11</td>
+ </tr>
+ <tr>
+ <td><tt>SVN_EXPERIMENTAL_COMMANDS=</tt></td>
+ <td>No shelving CLI</td>
+ </tr>
+ <tr>
+ <td>Environment variable not set</td>
+ <td>No shelving CLI</td>
+ </tr>
+</table>
+
+<p>The following table summarizes the kinds of changes that can be shelved by
+the two implementations:</p>
+
+<table border="1">
+ <tr>
+ <th>WC State or Change</th>
+ <th>Shelving-v2</th>
+ <th>Shelving-v3</th>
+ </tr>
+ <tr>
+ <td>file text, file delete/add, most properties</td>
+ <td>yes</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td>mergeinfo changes</td>
+ <td>yes</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td>copies and moves</td>
+ <td>no</td>
+ <td>as copies<sup>1</sup></td>
+ </tr>
+ <tr>
+ <td>directories (mkdir/rmdir/...)</td>
+ <td>no</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td>binary files & properties</td>
+ <td>yes</td>
+ <td>yes</td>
+ </tr>
+ <tr>
+ <td colspan="3"><sup>1</sup>On shelving, a move is converted to
+ copy-and-delete, just like it is on commit.
+ </td>
+ </tr>
+</table>
+
+</div> <!-- shelving-enabling -->
+
+<div class="h4 experimental-feature" id="shelving-v2">
+<h4>Shelving-v2
+ <a class="sectionlink" href="#shelving-v2"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Shelving-v2, first introduced in 1.11, improves upon the initial shelving
+feature introduced in 1.10. The main improvements and changes are:</p>
+<ul>
+ <li>checkpointing support: a shelf stores multiple versions of a
+ change; shelving adds a new version to the named shelf; you can
+ unshelve an older version instead of the newest&mdash;see the
+ <a href="#shelving-checkpointing">commit checkpointing</a> feature</li>
+ <li>'binary' files (and property values) are fully supported</li>
+ <li>patch files are no longer used as the storage mechanism;
+ limitations and bugs due to patch file format are gone, such as
+ handling svn:mergeinfo properties, binary data, and end-of-line
+ characters</li>
+ <li>shelving and unshelving both warn and refuse to run if they detect
+ states that they cannot handle (e.g. copies or moves)</li>
+ <li>unshelving applies the changes to the WC using a mechanism similar
+ to merging, so that changes can be more robustly applied when the
+ WC has been modified (e.g. updated) since the shelf was saved</li>
+</ul>
+
+<p>Shelving-v2 can shelve committable changes to files and properties, except
+the following kinds which it does not support:</p>
+<ul>
+ <li>copies and moves</li>
+ <li>creating and deleting directories</li>
+</ul>
+
+<p>Shelves created by Shelving-v2 are stored under
+<tt><i>&lt;WC&gt;</i>/.svn/experimental/shelves/v2</tt>.</p>
+
+</div> <!-- shelving-v2 -->
+
+<div class="h4 experimental-feature" id="shelving-v3">
+<h4>Shelving-v3
+ <a class="sectionlink" href="#shelving-v3"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Shelving-v3, first introduced in 1.12, can handle more kinds of changes
+than Shelving-v2. In particular, it supports shelving of all committable
+changes. However, it performs much more slowly than Shelving-v2 and uses more
+disk space, especially when used with large working copies.</p>
+
+<p>This version of shelving represents a series of significant refactorings
+under the hood to eventually support better shelving, commit checkpointing,
+and the possibility of future client-side features for manipulating and
+sharing committable changes.</p>
+
+<p>Shelves created by Shelving-v3 are stored under
+<tt><i>&lt;WC&gt;</i>/.svn/experimental/shelves/v3</tt>.</p>
+
+</div> <!-- shelving-v3 -->
+
+<div class="h4 experimental-feature" id="shelving-transition">
+<h4>Upgrading 1.10&ndash;1.13 shelves to 1.14
+ <a class="sectionlink" href="#shelving-transition"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>The presence in the working copy of any shelves created by Subversion 1.10
+has no effect on a Subversion 1.14 client. Subversion 1.14 will ignore them;
+it cannot interoperate with them nor even list their presence.</p>
+
+<p>The <tt>svn upgrade</tt> command has no effect on shelves, as the
+working copy format is formally unchanged.</p>
+
+<p>To recover a shelf created by 1.10, either
+<ul><li>use a 1.10 client to find and unshelve it, or</li>
+ <li>as 1.10 shelves are stored as patch files under
+ <tt><i>&lt;WC&gt;</i>/.svn/shelves/</tt>, find the patch file and
+ use any 1.10&ndash;1.14 or later <tt>svn patch</tt> to apply it.</li>
+</ul></p>
+
+<p>To access shelves created by 1.11, first select Shelving-v2 by setting the
+environment variable <tt>SVN_EXPERIMENTAL_COMMANDS=shelf2</tt>.</p>
+
+<p>To access shelves created by 1.12&ndash;1.13, first select Shelving-v3 by
+setting the environment variable <tt>SVN_EXPERIMENTAL_COMMANDS=shelf3</tt>.</p>
+
+</div> <!-- shelving-transition -->
+
+<div class="h4 experimental-feature" id="shelving-checkpointing">
+<h4>Commit checkpointing (experimental)
+ <a class="sectionlink" href="#shelving-checkpointing"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p>Since 1.11, Subversion provides an experimental first cut at solving some
+of the use cases envisioned in <a
+href="https://issues.apache.org/jira/browse/SVN-3626">issue #3626</a> named
+"Commit checkpointing".</p>
+
+<p>It provides the ability to save a snapshot of an uncommitted change from
+time to time, and later restore one of those previous versions of your
+change back into the working copy.</p>
+
+<p>It does not provide the kind of exact WC state roll back that is also
+discussed in that issue, that could make it possible after a messy update to
+roll back to the exact WC state that existed just before. This remains a
+future possibility.</p>
+
+<p>The ability to checkpoint and roll back an uncommitted change is provided
+within the shelving feature, by letting a shelf hold multiple versions of
+your change. Therefore, see also <a href="#shelving"> Shelving</a>.</p>
+
+<p>The main checkpointing operations are accomplished by the following
+commands, as also listed in
+<a href="https://cwiki.apache.org/confluence/x/70cYBQ">the Wiki page</a>:</p>
+
+<table>
+<tr><th>Save a checkpoint and continue</th>
+ <td><tt>svn x-<b>shelf-save</b> foo</tt></td>
+ <td>copy the local changes into a new version of shelf 'foo';<br/>
+ doesn't revert the changes from the WC</td>
+</tr>
+<tr><th>Save a checkpoint and shelve</th>
+ <td><tt>svn x-<b>shelve</b> foo</tt></td>
+ <td>move the local changes into a new version of shelf 'foo'<br/>
+ and revert the changes from the WC</td>
+</tr>
+<tr><th>Restore / roll back</th>
+ <td>first revert your unwanted changes; then<br/>
+ <tt>svn x-<b>unshelve</b> foo 3</tt></td>
+ <td>apply version 3 of shelf 'foo' to the WC<br/>
+ and delete any newer versions</td>
+</tr>
+<tr><th>Review checkpoints</th>
+ <td><tt>svn x-<b>shelf-log</b> foo</tt></td>
+ <td>list all the versions of shelf 'foo'</td>
+</tr>
+<tr><th></th>
+ <td><tt>svn x-<b>shelf-diff</b> foo 3</tt></td>
+ <td>show version 3 as a diff</td>
+</tr>
+</table>
+
+</div> <!-- shelving-checkpointing -->
+
+<p>Further information can be found in the Subversion Wiki under
+<a href="https://cwiki.apache.org/confluence/display/SVN/Shelving+and+Checkpointing"
+>Shelving and Checkpointing</a>, including internal design and development
+notes.</p>
+
+</div> <!-- shelving -->
+
+<div class="h3 experimental-feature" id="viewspec-output">
+<h3>Viewspec output command (experimental)
+ (<a href="https://issues.apache.org/jira/browse/SVN-4753">issue #4753</a>)
+ <a class="sectionlink" href="#viewspec-output"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p>There is an experimental command to write out a view spec describing the
+current WC shape.</p>
+
+<p>A view spec describes whether each subtree is at a limited depth, excluded,
+switched to a different URL, or updated to a different revision number,
+compared with its parent directory. This information is sometimes referred
+to as the shape or the layout of a WC.</p>
+
+<p>'<tt>svn info --x-viewspec=classic</tt>' writes in the format used by the old script
+<a href="http://svn.apache.org/viewvc/subversion/trunk/tools/client-side/svn-viewspec.py">tools/client-side/svn-viewspec.py</a>.</p>
+
+<p>'<tt>svn info --x-viewspec=svn11</tt>' writes a series of '<tt>svn</tt>'
+command lines. You can create a new WC of the same layout by running these
+commands.</p>
+
+</div> <!-- viewspec-output -->
+
+</div> <!-- experimental -->
+
+<div class="h2" id="issues">
+<h2>Known Issues in the Release
+ <a class="sectionlink" href="#issues"
+ title="Link to this section">&para;</a>
+</h2>
+
+<!--
+<p>There are no known issues specific to this release at the moment.</p>
+-->
+
+<p>There are some known issues in the Subversion 1.14 releases. These
+may be fixed in later 1.14.x releases.</p>
+
+<div class="h3" id="python3-work-in-progress">
+<h3>Python 3 support is incomplete
+ <a class="sectionlink" href="#python3-work-in-progress"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>Some Python scripts that are included in Subversion's release
+distribution do not support Python 3 yet.</p>
+
+<p>For an exhaustive list of all Python scripts and files that use
+Python, categorized by their Python 3 support status as of the
+1.14.0 release, see <a href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=138021580"
+>Subversion's Python 3 Support Status</a> wiki page.</p>
+
+<p>The <a href="https://cwiki.apache.org/confluence/display/SVN/Subversion%27s+Python+3+Support+Status"
+>latest version</a> of that page reflects changes made after
+the release, which may be included in future releases.</p>
+
+<div class="h4" id="autogen_sh-py2-py3">
+<h4>The build system prefers Python 2 to Python 3
+ <a class="sectionlink" href="#autogen_sh-py2-py3"
+ title="Link to this section">&para;</a>
+</h4>
+
+<p>Although <a href="#pythonoptional">Python is not required for building
+Subversion</a>, it <em>is</em> required for running the test suite, and
+therefore, on Unix-like systems, Subversion's build system looks for a Python
+executable.</p>
+
+<p>The build system checks the environment variables <tt>$PYTHON</tt>,
+<tt>$PYTHON2</tt>, and <tt>$PYTHON3</tt> in this order, followed by the command
+names <tt>python</tt>, </tt>python2</tt>, and <tt>python3</tt> (in
+<tt>$PATH</tt>) in this order. The first of these that is an executable
+implementing Python version 2.7 or greater is used.</p>
+
+<p>Since <a href="#python2">support for Python 2.7 is being phased out</a>, we
+expect to change this to prefer Python 3 to Python 2.7 in a 1.14.x patch release.
+When we do, we will mention the change in the <tt>CHANGES</tt> file and update
+this section of the release notes.</p>
+
+<p>This affects both tarball builds (using <tt>configure</tt>) and working copy
+builds (using <tt>autogen.sh</tt>). The release rolling scripts are also
+affected.</p>
+
+<p>As a workaround, the environment variable <tt>PYTHON</tt> may be set to the
+full path of a Python 3 executable prior to running <tt>configure</tt> (or
+<tt>autogen.sh</tt>, if you build from a working copy).</p>
+
+</div> <!-- autogen_sh-py2-py3 -->
+
+</div> <!-- python3-work-in-progress -->
+
+<div class="h3" id="ruby-swig-issue-602">
+<h3>Ruby bindings require swig 3.0.9
+ <a class="sectionlink" href="#ruby-swig-issue-602"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>This change was first introduced in 1.11.</p>
+
+<p><em>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.</em></p>
+
+<p>The Ruby bindings are known not to build with swig version 3.0.8 (and only
+that version) due to <a href="https://github.com/swig/swig/issues/602">swig
+issue #602</a>. We recommend to use swig 3.0.9 or newer.</p>
+
+<p>The failure is detected by the test suite.
+To test whether your version of swig is affected, run
+<tt>make check-swig-rb</tt>. (Some distros might have backported the swig
+patch into their swig-3.0.8 packages.)</p>
+
+<p>The Perl and Python bindings are not affected.</p>
+
+</div> <!-- ruby-swig-issue-602 -->
+
+</div> <!-- issues -->
+
+<!-- (This section only makes sense when there are some issues listed in it.)
+<div class="h2" id="troubleshooting">
+<h2>Troubleshooting issues specific to this release
+ <a class="sectionlink" href="#troubleshooting"
+ title="Link to this section">&para;</a>
+</h2>
+
+<p>Subversion 1.14 introduces new features and makes use of new techniques
+which can trigger problems not encountered in previous versions. In contrast to
+known issues, things listed here are not due to some bug or issue in Subversion
+itself and therefore cannot be fixed with a new patch release.
+This section lists all known problems and provides instructions to solve them,
+if they occur.</p>
+
+<p>There are no known issues specific to this release at the moment.</p>
+
+</div> <!- - troubleshooting - ->
+-->
+
+<div class="h2" id="support">
+<h2>Support and Release Planning
+ <a class="sectionlink" href="#lts-release"
+ title="Link to this section">&para;</a>
+</h2>
+
+<div class="h3" id="lts-release">
+<h3>Subversion 1.14.x is a Long-Term Support (LTS) Release
+ <a class="sectionlink" href="#lts-release"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>1.14 is a Long-Term Support (LTS) release.
+ See <a href="/docs/release-notes/#supported-versions">Supported Versions</a>
+ and <a href="/roadmap.html#release-planning">How We Plan Releases</a>.</p>
+
+</div> <!-- lts-release -->
+
+<div class="h3" id="svn-1.13-deprecation">
+<h3>Subversion 1.13.x is end of life
+ <a class="sectionlink" href="#svn-1.13-deprecation"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>The Subversion 1.13.x line is end of life (<abbr title="End Of Life">EOL</abbr>).
+This doesn't mean that your 1.13 installation is doomed; if it works
+well and is all you need, that's fine. "End of life" just means we've
+stopped accepting bug reports against 1.13.x versions, and will not
+make any more 1.13.x releases.</p>
+
+</div> <!-- svn-1.13-deprecation -->
+
+<div class="h3" id="svn-1.10-old-stable">
+<h3>Subversion 1.10.x is now the old stable version
+ <a class="sectionlink" href="#svn-1.10-old-stable"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>The Subversion 1.10.x line is now the old stable version. This means
+that 1.10.x will still receive security relevant fixes as well as
+bugfixes. While we will evaluate any bugreport with regards to its
+severity, there might be issues with a lower severity which will
+only get fixed in 1.14.x, particularly if the patches would be invasive,
+destabilizing, and/or require a significant investment to get backported to the
+old stable version.</p>
+
+<p>Therefore, if you are running into an issue with the old stable
+version which has already been fixed in the latest version, we might
+ask you to upgrade to that version to resolve the issue.</p>
+
+</div> <!-- svn-1.10-old-stable -->
+
+<div class="h3" id="svn-1.9-deprecation">
+<h3>Subversion 1.9.x is end of life
+ <a class="sectionlink" href="#svn-1.9-deprecation"
+ title="Link to this section">&para;</a>
+</h3>
+
+<p>The Subversion 1.9.x line is end of life (<abbr title="End Of Life">EOL</abbr>).
+This doesn't mean that your 1.9 installation is doomed; if it works
+well and is all you need, that's fine. "End of life" just means we've
+stopped accepting bug reports against 1.9.x versions, and will not
+make any more 1.9.x releases.</p>
+
+</div> <!-- svn-1.9-deprecation -->
+
+</div> <!-- support -->
+
+<div class="h2" id="enthusiastic-contributors">
+<h2>Enthusiastic Contributors Welcome!
+ <a class="sectionlink" href="#enthusiastic-contributors"
+ title="Link to this section">&para;</a>
+</h2>
+
+<p>You can contribute to Subversion!</p>
+
+<p>As Subversion is an open source project developed and supported by
+volunteers, we are always happy to welcome enthusiastic participants
+to the community.</p>
+
+<p>Whether you'd like to see support for additional versions of Python,
+want to help finish Shelving and Checkpointing, or have ideas for some big
+new features, if you're willing to invest the effort, Subversion can be
+anything you imagine.</p>
+
+<p>Join the conversation by email: For our mailing lists, see
+<a href="https://subversion.apache.org/mailing-lists.html">
+https://subversion.apache.org/mailing-lists.html</a></p>
+
+<p>Or by IRC at irc.freenode.net:</p>
+<ul>
+ <li>#svn channel: User chat and help using Subversion</li>
+ <li>#svn-dev channel: Get involved in development!</li>
+</ul>
+
+<p>Get the source:</p>
+<ul>
+ <li>Check out Subversion's source:
+ <pre>$ svn checkout https://svn.apache.org/repos/asf/subversion/trunk/</pre></li>
+
+ <!-- TODO: Use the URL to the *.apache.org mirror of subversion.git -->
+ <li>For those who prefer it, a Git mirror is also available:
+ <pre>$ git clone https://github.com/apache/subversion.git</pre></li>
+
+ <li>Or download the latest release tarball:
+ <a href="https://subversion.apache.org/download.cgi"
+ >https://subversion.apache.org/download.cgi</a></li>
+</ul>
+
+<p>Join us today!</p>
+
+</div> <!-- enthusiastic-contributors -->
+
+<!-- ***************** END CONTENT ****************** -->
+</div> <!-- #site-content -->
+</body>
+</html>