| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
| "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <style type="text/css"> /* <![CDATA[ */ |
| @import "branding/css/tigris.css"; |
| @import "branding/css/inst.css"; |
| /* ]]> */</style> |
| <link rel="stylesheet" type="text/css" media="print" |
| href="branding/css/print.css"/> |
| <script type="text/javascript" src="branding/scripts/tigris.js"></script> |
| <title>Subversion 1.5 Release Notes</title> |
| </head> |
| |
| <body> |
| <div class="app"> |
| |
| <div class="warningmessage"> |
| <p><strong>Note:</strong> Subversion 1.5 is <em>not released yet</em>. |
| When it is released, this warning message will disappear, and the rest |
| of this page will become the release notes. Until then, this page |
| describes what is planned for the release.</p> |
| </div> |
| |
| <h1 style="text-align: center">Subversion 1.5 Release Notes</h1> |
| |
| <div class="h2" id="news" title="news"> |
| <h2>What's New in Subversion 1.5</h2> |
| |
| <ul> |
| <li>Merge Tracking</li> |
| <li>Sparse checkouts</li> |
| <li>Interactive conflict resolution</li> |
| <li>WebDAV transparent write-through proxy</li> |
| <li>Cyrus SASL support for ra_svn and <tt>svnserve</tt></li> |
| <li>Copy/move improvements: peg revisions, 'svn mv file1 file2; svn |
| mv file2 file3', 'svn cp *.c dir'</li> |
| <li>Cancellation improvements</li> |
| <li>Changelist support</li> |
| <li>FSFS sharding</li> |
| <li>Command-line client improvements</li> |
| <li>JavaHL bindings improvements</li> |
| <li>Many improved APIs</li> |
| <li>Easier to try out experimental <tt>ra_serf</tt> DAV access module</li> |
| <li>More than XXX new bug fixes</li> |
| </ul> |
| |
| <p>Details are described below.</p> |
| |
| <p>Subversion 1.5 is a superset of all previous Subversion releases, |
| and is considered the current "best" release. Anything in 1.0.x, |
| 1.1.x, 1.2.x or 1.3.x is also in 1.5, but 1.5 contains features and |
| bugfixes not present in any earlier release. The new features will |
| eventually be documented in a 1.5 version of the free Subversion book, |
| see <a |
| href="http://svnbook.red-bean.com">svnbook.red-bean.com</a>.</p> |
| |
| </div> <!-- news --> |
| |
| <div class="h2" id="compatibility" title="compatibility"> |
| <h2>Compatibility Concerns</h2> |
| |
| <p>Older clients and servers interoperate transparently with 1.5 |
| servers and clients. Of course, some of the new 1.5 features may not |
| be available unless both client and server are the latest version |
| (e.g. <a href="/merge-tracking/func-spec.html#migration-and-interoperability" |
| >Merge Tracking</a>). There is <strong>no need</strong> to dump and |
| reload your repositories; Subversion 1.5 can read repositories created |
| by earlier versions. To upgrade an existing installation, just |
| install the newest libraries and binaries on top of the older |
| ones.</p> |
| |
| <p>Subversion 1.5 maintains API/ABI compatibility with earlier |
| releases, by only adding new functions. A program written to the 1.0, |
| 1.1, 1.2 or 1.3 API can both compile and run using 1.5 libraries. |
| However, a program written for 1.5 cannot necessarily compile or run |
| against older libraries.</p> |
| |
| <div class="h3" id="wc-format-change" title="wc-format-change"> |
| <h3>Working Copy and Repository Format Changes</h3> |
| |
| <p>XXX: 1.5 currently uses the same SVN_WC__VERSION (8) as 1.4.x. |
| However, some changes <em>sussman</em> and some other folks are |
| considering for Merge Tracking may impact this. If these changes turn |
| out not to require a WC format bump, remove this section.</p> |
| |
| <p>Due to certain improvements and bugfixes made to the working copy |
| library, the version number of the working copy format has been |
| incremented. This means that Subversion clients earlier than 1.5 will |
| <em>not</em> be able to work with working copies produced by Subversion |
| 1.5. Similarly, the repository format has changed as well, meaning |
| that pre-1.5 Subversion tools that normally access a repository |
| directly |
| (e.g. <tt>svnserve</tt>, <tt>mod_dav_svn</tt>, <tt>svnadmin</tt>) |
| won't be able to read a repository originally created by Subversion |
| 1.5. </p> |
| |
| <p><strong>WARNING:</strong> if a Subversion 1.5 client encounters a pre-1.5 |
| working copy, it will <em>automatically</em> upgrade the working copy |
| format as soon as it touches it, making it unreadable by older |
| Subversion clients. If you are using several versions of Subversion |
| on your machine, you need to be careful about which version you use in |
| which working copy, to avoid accidentally upgrading the working copy |
| format. This "auto upgrade" feature, however, does <em>not</em> occur |
| with the new repository format. </p> |
| |
| </div> <!-- wc-format-change --> |
| |
| <div class="h3" id="output-changes" title="output-changes"> |
| <h3>Command Line Output Changes</h3> |
| |
| <p>Although the Subversion developers try hard to keep output from the |
| command line programs compatible between releases, new information |
| sometimes has to be added. This might break scripts that rely on the |
| exact format of the output. In 1.5, the following changes have been |
| made to the output:</p> |
| |
| <p>XXX: Enumerate changes to output (e.g. for changelists).</p> |
| |
| <ul> |
| <li><p>Conflict markers in files now match the file's defined |
| eol-style.</p></li> |
| </ul> |
| |
| </div> <!-- output-changes --> |
| |
| </div> <!-- compatibility --> |
| |
| <div class="h2" id="new-features" title="new-features"> |
| <h2>New Features</h2> |
| |
| <p>XXX: Describe each new feature. See the 1.4 RNs for a |
| "template".</p> |
| |
| <div class="h3" id="merge-tracking" title="merge-tracking"> |
| <h3>Merge Tracking (<em>client and server</em>)</h3> |
| |
| <p>XXX</p> |
| |
| </div> <!-- merge-tracking --> |
| |
| <div class="h3" id="sparse-checkouts" title="sparse-checkouts"> |
| <h3>Sparse checkouts (<em>client and server</em>)</h3> |
| |
| <p>XXX: Described <a |
| href="http://svn.collab.net/repos/svn/trunk/notes/sparse-directories.txt" |
| >here</a>.</p> |
| |
| </div> <!-- sparse-checkouts --> |
| |
| <div class="h3" id="conflict-resolution" title="conflict-resolution"> |
| <h3>Interactive Conflict Resolution (<em>client</em>)</h3> |
| |
| <p>Added support for interactive conflict resolution in the command |
| line client, and a corresponding callback function in the client library. |
| GUI clients can use the callback function to hook in a graphical conflict |
| resolution program to the update/switch/merge commands. Example command |
| line output:</p> |
| <pre> |
| svn up |
| U contrib/client-side/svnmerge/svnmerge_test.py |
| Conflict discovered in 'contrib/client-side/svnmerge/svnmerge.py'. |
| Select: (p)ostpone, (d)iff, (e)dit, (h)elp : h |
| (p)ostpone - mark the conflict to be resolved later |
| (d)iff - show all changes made to merged file |
| (e)dit - change merged file in an editor |
| (r)esolved - accept merged version of file |
| (m)ine - accept my version of file |
| (t)heirs - accept repository's version of file |
| (l)aunch - use third-party tool to resolve conflict |
| (h)elp - show this list |
| |
| Select: (p)ostpone, (d)iff, (e)dit, (h)elp : t |
| G contrib/client-side/svnmerge/svnmerge.py |
| Updated to revision 25685. |
| </pre> |
| <p>This feature can be selectively disabled by using the --non-interactive |
| option, or disabled permanently by setting '[miscellany] interactive-conflicts |
| = no' in your run-time config file.</p> |
| |
| </div> <!-- conflict-resolution --> |
| |
| <div class="h3" id="webdav-proxy" title="webdav-proxy"> |
| <h3>WebDAV transparent write-through proxy (<em>server</em>)</h3> |
| |
| <p>XXX: A <a href="http://svn.collab.net/repos/svn/trunk/notes/webdav-proxy" |
| >mod_dav_svn feature</a> activated using the SVNMasterURI directive in |
| httpd.conf.</p> |
| |
| </div> <!-- webdav-proxy --> |
| |
| <div class="h3" id="cyrus-sasl" title="cyrus-sasl"> |
| <h3>Cyrus SASL support for ra_svn and <tt>svnserve</tt> (<em>client |
| and server</em>)</h3> |
| |
| <p>XXX: Described <a |
| href="http://svn.collab.net/repos/svn/trunk/notes/sasl.txt">here</a>.</p> |
| |
| </div> <!-- cyrus-sasl --> |
| |
| <div class="h3" id="changelist-support" title="changelist-support"> |
| <h3>Changelist support (<em>client</em>)</h3> |
| |
| <p>XXX: Described <a |
| href="http://svn.collab.net/repos/svn/trunk/notes/changelist-design.txt" |
| >here</a>.</p> |
| |
| </div> <!-- changelist-support --> |
| |
| <div class="h3" id="fsfs-sharding" title="fsfs-sharding"> |
| <h3>FSFS sharding</h3> |
| |
| <p>XXX: Useful for file systems which don't perform well with a large |
| number of files in a directory -- see blog entry <a |
| href="http://www.farside.org.uk/200704/tree_structured_fsfs">here</a>. |
| <a |
| href="http://svn.collab.net/repos/svn/trunk/tools/server-side/fsfs-reshard.py" |
| >Migration script</a> provided.</p> |
| |
| </div> <!-- fsfs-sharding --> |
| |
| </div> <!-- new-features --> |
| |
| |
| <div class="h2" id="enhancements" title="enhancements"> |
| <h2>Enhancements and Bugfixes</h2> |
| |
| <div class="h3" id="copy-move-improvements" title="copy-move-improvements"> |
| <h3>Copy/move improvements</h3> |
| |
| <p>XXX</p> |
| |
| </div> <!-- copy-move-improvements --> |
| |
| <div class="h3" id="cancellation-improvements" |
| title="cancellation-improvements"> |
| <h3>Cancellation improvements (<em>client</em>)</h3> |
| |
| <p>XXX</p> |
| |
| </div> <!-- cancellation-improvements --> |
| |
| <div class="h3" id="cmdline" title="cmdline"> |
| <h3>Command-line client improvements (<em>client</em>)</h3> |
| |
| <ul> |
| <li>A <code>--use-merge-history</code> option to adhere to Merge |
| Tracking meta data has been added to the following sub-commands: |
| <ul> |
| <!-- li>blame</li --> |
| <li>log</li> |
| <li>merge</li> |
| </ul> |
| </li> |
| |
| <li>A <code>--parents</code> option to create intermediate |
| directories has been added to the following sub-commands: |
| <ul> |
| <li>add</li> |
| <li>copy</li> |
| <li>move</li> |
| <li>mkdir</li> |
| </ul> |
| </li> |
| |
| <!-- ### Anticipated addition(s): |
| <li><code>--merged-from</code> and <code>--merged-to</code> options |
| to report on merge info have been added to the <code>info</code> |
| sub-command.</li> |
| |
| <li>An <code>--accept=orig|mine|repo</code> option to select which |
| version of a path to retain has been added to the |
| <code>resolved</code> sub-command.</li> |
| --> |
| |
| <li>A <code>--keep-local</code> option to retain paths locally has |
| been added to the <code>delete</code> sub-command.</li> |
| </ul> |
| |
| </div> <!-- cmdline --> |
| |
| <div class="h3" id="javahl-improvements" title="javahl-improvements"> |
| <h3>Javahl bindings improvements</h3> |
| |
| <p>XXX: Should this go into the APIs section?</p> |
| |
| </div> <!-- javahl-improvements --> |
| |
| <div class="h3" id="apis" title="apis"> |
| <h3>API improvements (<em>client and server</em>)</h3> |
| |
| <p>If you develop a 3rd-party client application that uses Subversion |
| APIs, you may want to take notice of some new APIs:</p> |
| |
| <ul> |
| <li>XXX: Enumerate specific new API additions (e.g. merge info |
| retrieval?)</li> |
| |
| <li>APIs backing the new <a href="#cmdline">Command-line client |
| improvements</a> section have been added.</li> |
| |
| <li>Many APIs have been revised to newer versions.</li> |
| </ul> |
| |
| </div> <!-- apis --> |
| |
| <div class="h3" id="dav-modules" title="dav-modules"> |
| <h3>Easier to try out experimental <tt>ra_serf</tt> DAV access module |
| (<em>client</em>)</h3> |
| |
| <p>Subversion 1.4 introduced the experimental <tt>ra_serf</tt> |
| repository access module for accessing HTTP[S] DAV Subversion servers. |
| This uses the <a href="http://code.google.com/p/serf/">serf</a> |
| library instead of the Neon library which the original DAV support |
| uses. serf supports pipelined requests which may lead to better |
| performance. However, Subversion 1.4 required you to choose which |
| module to use for accessing DAV servers at build time, which made it |
| difficult to find out which module performs better for your usage |
| patterns.</p> |
| |
| <p>Subversion 1.5 allows you to build both modules at the same time; |
| you can choose which library to use on a global or host-by-host basis |
| by setting the <tt>http-library</tt> variable in your run-time server |
| configuration file (<tt>~/.subversion/servers</tt>). In recognition |
| of the fact that both libraries are DAV clients, we have |
| renamed <tt>ra_dav</tt> to <tt>ra_neon</tt>.</p> |
| |
| </div> <!-- dav-modules --> |
| |
| <div class="h3" id="bug-fixes" title="bug-fixes"> |
| <h3>Other bug fixes (<em>client and server</em>)</h3> |
| |
| <p>The usual slew of heretofore-unreleased bug fixes, more than 40 |
| overall. See the |
| <a href="http://svn.collab.net/repos/svn/trunk/CHANGES">CHANGES</a> |
| file for full details.</p> |
| |
| </div> <!-- bug-fixes --> |
| |
| </div> <!-- enhancements --> |
| |
| <div class="h2" id="svn-1.3-deprecation" title="svn-1.3-deprecation"> |
| <h2>Subversion 1.3.x series no longer supported</h2> |
| |
| <p>The Subversion 1.3.x line is no longer supported. This doesn't |
| mean that your 1.3 installation is doomed; if it works well and is all |
| you need, that's fine. "No longer supported" just means we've stopped |
| accepting bug reports against 1.3.x versions, and will not make any |
| more 1.3.x bugfix releases, except perhaps for absolutely critical |
| security or data-loss bugs.</p> |
| |
| </div> <!-- svn-1.3-deprecation --> |
| |
| </div> <!-- app --> |
| </body> |
| </html> |