| <!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 |
| through 1.4.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="repos-format-change" title="repos-format-change"> |
| <h3>Repository Format Changes</h3> |
| |
| <p>Due to certain improvements and bugfixes made to the FS library, |
| the version number of the repository format has been incremented. This |
| means 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>) will <em>not</em> be able to read a repository |
| originally created by Subversion 1.5.</p> |
| |
| </div> <!-- repos-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 |
| <code>update</code>/<code>switch</code>/<code>merge</code> 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> |
| |
| <p>The API for interactive conflict resolution is exposed via a |
| callback function and the following new data types:</p> |
| |
| <ul> |
| <li><code>svn_wc_conflict_resolver_func_t</code>, the callback API |
| itself</li> |
| <li><code>svn_wc_conflict_description_t</code>, a description of the |
| conflict passed to the callback</li> |
| <li><code>svn_wc_conflict_action_t</code>, the part of the conflict |
| description indicating what the merge was trying to do</li> |
| <li><code>svn_wc_conflict_reason_t</code>, the part of the conflict |
| description indicating the type of conflict</li> |
| <li><code>svn_wc_conflict_result_t</code>, returned by the callback |
| as the result of any conflict resolution attempt</li> |
| </ul> |
| |
| <p>Clients provide their callback function to Subversion's libraries |
| by setting it on the (new) <code>conflict_func</code> field of their |
| <code>svn_client_ctx_t</code>, and may provide additional state to the |
| callback via the corresponding <code>conflict_baton</code> field.</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>. |
| <!-- ### Reshard script is not quite finished and currently |
| ### aborts if you try to run it. |
| <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): |
| ### double-dash sequences inside comment changed to '++' to |
| ### avoid breaking XML rules. |
| <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> |