| <!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>Copy/move-related improvements</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>Cancellation improvements</li> |
| <li>Changelist support</li> |
| <li>Relative and peg URLs in <tt>svn:externals</tt></li> |
| <li>FSFS sharding</li> |
| <li>Command-line client improvements</li> |
| <li>API changes, improvements and language bindings</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>XXX: Note new FS node-origins index (which lazily populates while |
| responding to queries), and new svn-populate-node-origins-index tool.</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. However, see the <a href="#apis">API</a> |
| section on some clarifications on existing APIs.</p> |
| |
| <div class="h3" id="wc-and-repos-format-change" title="wc-format-change"> |
| <h3>Working Copy and Repository Format Changes</h3> |
| |
| <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> |
| |
| <p>If you do accidentally upgrade a 1.4 (only) working copy, you can |
| use <a |
| href="http://svn.collab.net/repos/svn/trunk/tools/client-side/change-svn-wc-format.py" |
| >this script</a> to downgrade it back 1.4. See <a |
| href="http://subversion.tigris.org/faq.html#working-copy-format-change" |
| >the FAQ</a> for details, and run the script with the |
| <code>--help</code> option for usage instructions.</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 |
| <code>update</code>/<code>switch</code>/<code>merge</code> |
| sub-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="relative-externals" title="relative-externals"> |
| <h3>Relative peg URLs in <tt>svn:externals</tt></h3> |
| |
| <p>Two additions to the <tt>svn:externals</tt> feature</p> |
| <ul> |
| <li> |
| <p> |
| The URLs may include peg specifications. Because the |
| directory a URL refers to with and without a peg revision uses |
| a different lookup and result in different contents, the |
| current format from older versions of Subversion continues to |
| not understand peg revisions. A new format is introduced to |
| allow peg revisions in URLs. |
| </p> |
| <p>So the old format of</p> |
| <pre> |
| foo http://example.com/repos/zig |
| foo/bar -r 1234 http://example.com/repos/zag |
| </pre> |
| <p>does not support peg revisions. In fact, these following |
| externals will not work unless there are directories named |
| <tt>zig@HEAD</tt> and <tt>zag@HEAD</tt>:</p> |
| <pre> |
| foo http://example.com/repos/zig@HEAD |
| foo/bar -r 1234 http://example.com/repos/zag@HEAD |
| </pre> |
| <p> |
| The new format moves the URL first followed by the directory |
| the external is checked out or exported into</p> |
| <pre> |
| http://example.com/repos/zig foo1 |
| -r 1234 http://example.com/repos/zag foo/bar1 |
| http://example.com/repos/zig@HEAD foo2 |
| -r 1234 http://example.com/repos/zag@HEAD foo/bar2 |
| </pre> |
| <p>peg specifications are allowed but not necessary. |
| </p> |
| </li> |
| <li> |
| <p> |
| Up to Subversion 1.4, the URLs in an <tt>svn:externals</tt> |
| specification must be absolute. Now they can be relative. |
| Four different relative externals are supported. |
| </p> |
| <p> |
| For the following example, assume we have two repositories at |
| <tt>http://example.com/svn/repos-1</tt> and |
| <tt>http://example.com/svn/repos-2</tt>. We have a checkout |
| of <tt>http://example.com/svn/repos-1/project1/trunk</tt> and |
| the <tt>svn:external</tt> property is set on <tt>trunk</tt>.</p> |
| <ul> |
| <li> |
| <tt>../</tt> |
| <br/> |
| Relative to the directory with the <tt>svn:external</tt> |
| property. These URLs always begin with the string |
| <tt>../</tt>. |
| <pre> |
| ../../project2/trunk common/project2/trunk |
| </pre> |
| This will extract |
| <tt>http://example.com/svn/repos-1/project2/trunk</tt> |
| into <tt>common/project2/trunk</tt>. The URL is relative |
| to the directory with the <tt>svn:external</tt>, not the |
| directory where the external is written to disk. |
| </li> |
| <li> |
| <tt>^/</tt> |
| <br/> |
| Relative to the repository root. |
| <pre> |
| ^/project2/trunk common/project2/trunk |
| </pre> |
| This will extract |
| <tt>http://example.com/svn/repos-1/project2/trunk</tt> |
| into <tt>common/project2/trunk</tt>. |
| <br/> |
| |
| You can also refer to other repositories easily using |
| repository root relative URLs: |
| <pre> |
| ^/../repos-2/foo/trunk common/foo/trunk |
| </pre> |
| This will extract |
| <tt>http://example.com/svn/repos-2/foo/trunk</tt> into |
| <tt>common/foo/trunk</tt> |
| </li> |
| <li> |
| <tt>//</tt> |
| <br/> |
| Relative to the scheme. This copies the scheme of the |
| checkout or export URL into the URL in the |
| <tt>svn:external</tt>. It is useful when the same |
| hostname must the accessed with different scheme's |
| depending upon network location; i.e. clients in the |
| intranet use <tt>http://</tt> while external clients use |
| <tt>svn+ssh://</tt>. |
| <pre> |
| //example.com/svn/repos-1/project2/trunk common/project2/trunk |
| </pre> |
| This will extract |
| <tt>http://example.com/svn/repos-1/project2/trunk</tt> |
| into <tt>common/project2/trunk</tt>. If the working copy |
| was checked out from |
| <tt>svn+ssh://example.com/svn/repos-1/project1/trunk</tt> |
| then this URL would be |
| <tt>http://example.com/svn/repos-1/project1/trunk</tt>. |
| </li> |
| <li> |
| <tt>/</tt> |
| <br/> |
| |
| Server root relative URLs. This copies the scheme and |
| hostname from the checkout or export URL into the |
| <tt>svn:external</tt> URL. |
| <pre> |
| /svn/repos-1/project2/trunk common/project2/trunk |
| </pre> |
| This will extract |
| <tt>http://example.com/svn/repos-1/project2/trunk</tt> |
| into <tt>common/project2/trunk</tt>. If the working copy |
| was checked out from |
| <tt>svn+ssh://example.com/svn/repos-1/project1/trunk</tt> |
| then this URL would be |
| <tt>http://example.com/svn/repos-1/project1/trunk</tt>. |
| </li> |
| </ul> |
| <p> |
| Relative URLs are supported in the old <tt>svn:externals</tt> |
| format that do not support peg revisions. |
| </p> |
| <p> |
| When Subversion sees an <tt>svn:externals</tt> without an |
| absolute URL it takes the first argument as a relative URL and |
| the second as the target directory. |
| </p> |
| </li> |
| </ul> |
| |
| </div> <!-- relative-externals --> |
| |
| <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-related improvements (<em>client and server</em>)</h3> |
| |
| <p>The abilities and behavior of <code>copy</code> and |
| <code>move</code> operations has improved significantly.</p> |
| |
| |
| <div class="h4" id="leverage-copyfrom" title="leverage-copyfrom"> |
| <h4>Improved copy-handling during updates (<em>client and server</em>)</h4> |
| |
| <p>A common problem in older versions of Subversion was the way in |
| which <code>svn update</code> handled incoming copies and moves.</p> |
| |
| <p>For example, suppose Harry runs <code>svn move foo bar; svn |
| commit</code>, and meanwhile Sally makes local changes to 'foo', and |
| then runs <code>svn update</code>. In earlier versions of Subversion, |
| the server would send down a completely new file 'bar', and remove the |
| file 'foo' (or rather, make it unversioned, since it has uncommitted |
| changes.) From Sally's point of view, her changes seem to be lost; |
| the newly added 'bar' file has the older content. In Subversion 1.5, |
| the client and server both attempt to be smarter about this. The |
| server doesn't send a whole new file during the update, but rather |
| instructions to copy something that may likely already exists in the |
| working copy. So Sally's 'foo' file is copied to 'bar' (with local |
| edits intact!).</p> |
| |
| <p>In theory, this is the best-case scenario. There are a few |
| caveats: this "proper copying" of existing working-copy resources only |
| works on files, not (yet) on directories. Also, if an incoming |
| move-operation deletes 'foo' before it attempts to copy it to 'bar', |
| then the copy will fail, and the client reverts to the old behavior of |
| fetching a pristine copy of the file from the repository. We hope to |
| address this in svn 1.6. For details on the this issue see <a |
| href="http://subversion.tigris.org/issues/show_bug.cgi?id=503">issue |
| #503</a>.</p> |
| |
| </div> <!-- leverage-copyfrom --> |
| |
| <div class="h4" id="copy-peg-revs" title="copy-peg-revs"> |
| <h4>Peg revisions (<em>client</em>)</h4> |
| |
| <p>Copy operations now accept sources with peg revisions.</p> |
| |
| </div> <!-- copy-peg-revs --> |
| |
| <div class="h4" id="multi-op-copy-move" title="multi-op-copy-move"> |
| <h4>Multiple working copy copy/move operations (<em>client</em>)</h4> |
| |
| <p>Clients may now perform multiple local copy/move operations on a |
| single object in a working copy:</p> |
| <blockquote><pre><code> |
| svn mv path1 path2 |
| svn mv path2 path3 |
| </code></pre></blockquote> |
| |
| </div> <!-- multi-op-copy-move --> |
| |
| <div class="h4" id="multi-src-copy" title="multi-src-copy"> |
| <h4>Improved handling multiple copy/move sources (<em>client</em>)</h4> |
| |
| <p>Clients now accept multiple sources for copy and move operations, with |
| the ability to copy/move each of the sources to the specified directory. |
| This mirrors the behavior of standard command-line copy and move tools, |
| such as <code>cp</code> and <code>mv</code>. In practice, this means |
| users can take advantage of shell globbing when doing a local copy |
| or move:</p> |
| <blockquote><pre><code> |
| svn cp *.c dir |
| </code></pre></blockquote> |
| |
| <p>Multiple source copy/move also works for all previously defined |
| copy/move working copy and repository combinations. This was |
| <a href="http://subversion.tigris.org/issues/show_bug.cgi?id=747">issue |
| #747</a>.</p> |
| |
| </div> <!-- multi-src-copy --> |
| |
| </div> <!-- copy-move-improvements --> |
| |
| <div class="h3" id="cancellation-improvements" |
| title="cancellation-improvements"> |
| <h3>Cancellation improvements (<em>client</em>)</h3> |
| |
| <p>Clients operations are now significantly more responsive to |
| cancellation (e.g. via <tt>control-c</tt>). In pre-1.5 releases, |
| after directing an operation to stop, one sometimes had to wait for |
| some time (e.g. while I/O occurred) before the operation would |
| actually stop.</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> |
| |
| <p>XXX: More...</p> |
| |
| </div> <!-- cmdline --> |
| |
| <div class="h3" id="apis" title="apis"> |
| <h3>API changes, improvements and language bindings |
| (<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 the following changes and new |
| APIs:</p> |
| |
| <ul> |
| <li><tt>svn_opt_parse_path()</tt> changes |
| <ul> |
| <li> |
| Since Subversion 1.3, if a path or URL ends in an empty |
| revision suffix '@', then the returned revision type would be |
| different than an unprotected path or URL: |
| <ul> |
| <li> |
| <tt>some/path/to/foo</tt> returns |
| <tt>svn_opt_revision_unspecified</tt> |
| </li> |
| <li> |
| <tt>some/path/to/foo<b>@</b></tt> returns |
| <tt>svn_opt_revision_base</tt> |
| </li> |
| <li> |
| <tt>http://example.com/some/path/to/foo</tt> returns |
| <tt>svn_opt_revision_unspecified</tt> |
| </li> |
| <li> |
| <tt>http://example.com/some/path/to/foo@</tt> returns |
| <tt>svn_opt_revision_head</tt> |
| </li> |
| </ul> |
| Subversion 1.5 fixes this inconsistency, all the above paths |
| and URLs return <tt>svn_opt_revision_unspecified</tt>. |
| </li> |
| <li> |
| Since Subversion 1.2, <tt>svn_opt_parse_path</tt> would always |
| canonicalize the returned path or URL with |
| <tt>svn_path_canonicalize</tt>, even though this is not |
| documented in <tt>subversion/include/svn_opt.h</tt>. For the |
| relative externals support, uncanonicalized paths need to be |
| returned, otherwise scheme relative URLs, |
| i.e. <tt>//example.com/some/path</tt> would be canonicalized |
| to server root relative URLs <tt>/example.com/some/path</tt>. |
| Users of this function now must ensure that they canonicalize |
| the result of this function if they pass it to any other |
| Subversion functions that expect a canonicalized path or URL. |
| </li> |
| </ul> |
| </li> |
| |
| <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> |
| |
| <li>Language bindings expanded and improved</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> |