| <!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.1 Release Notes</title> | 
 | </head> | 
 |  | 
 | <body> | 
 | <div class="app"> | 
 |  | 
 | <h1 style="text-align: center">Subversion 1.1 Release Notes</h1> | 
 | <h2 style="text-align: center">(and State of the Project)</h2> | 
 |  | 
 | <p>The <a href="http://svnbook.red-bean.com">Subversion book site</a> | 
 | has now been forked, and a separate <a | 
 | href="http://svnbook.red-bean.com/svnbook-1.1/index.html">Subversion | 
 | 1.1 book</a> documents most of <a | 
 | href="http://svnbook.red-bean.com/svnbook-1.1/pr02s07.html">the new | 
 | 1.1 features</a>.  Still, here are some brief release notes.</p> | 
 |  | 
 | <h3>Overview</h3> | 
 |  | 
 | <p>Subversion 1.1 can best be summarized as: (1) an optional new | 
 | non-database repository back-end, and (2) a whole slew of client-side | 
 | improvements.  Details are given below.</p> | 
 |  | 
 | <p>Note that Subversion 1.1 is a superset of all the Subversion 1.0.x | 
 | releases.  The 1.0.x releases contain nothing but critical bugfixes | 
 | backported from the 1.1 development line.  Subversion 1.1 introduces | 
 | new features and fixes many smaller bugs.</p> | 
 |  | 
 | <h3>Compatibility Concerns</h3> | 
 |  | 
 | <p>Subversion's compatibility and version-numbering policy is | 
 |     documented in the  | 
 |     <a href="hacking.html#release-numbering">Hacker's Guide to | 
 |     Subversion</a>.  Here's a quick summary:</p> | 
 |  | 
 | <ul> | 
 |  | 
 | <li><p><em>Database schema</em>: if upgrading to Subversion 1.1, there | 
 |         is <strong>no need</strong> to dump and load your repository. | 
 |         There will be no changes requiring dump/load before Subversion | 
 |         2.0.</p></li> | 
 |  | 
 | <li><p><em>Client/server compatibility</em>: a 1.X client and 1.Y | 
 |         server are always interoperable.  However, the latest features | 
 |         or bugfixes may not be available unless both client and server | 
 |         are the latest version.</p></li> | 
 |  | 
 | <li><p><em>API/ABI compatibility</em>: the 1.1 release only adds new | 
 |         functions; thus a 1.0 program can both compile against and | 
 |         use 1.1 libraries at run-time, but a 1.1 program cannot use | 
 |         1.0 libraries.</p></li> | 
 |  | 
 | </ul> | 
 |  | 
 |  | 
 | <h3>New Major Features</h3> | 
 |  | 
 | <h4>Non-database repositories  (<em>new server feature</em>)</h4> | 
 |  | 
 | <p>It's now possible to create repositories that don't use a | 
 |    BerkeleyDB database.  Instead, these new repositories store data in | 
 |    the ordinary filesystem.  Because Subversion developers often refer | 
 |    to the repository as "The Filesystem", we have adopted the rather | 
 |    confusing habit of referring to these new repositories as "fsfs" | 
 |    repositories... that is, a Filesystem implementation that uses the | 
 |    OS filesystem to store data.</p> | 
 |  | 
 | <p>Note that the data files created by fsfs repositories are still in | 
 |    a binary format, and are not human editable!</p> | 
 |  | 
 | <p>Why would someone choose an fsfs repository over BerkeleyDB?  The | 
 |    immediate and obvious advantages are the ability to access a | 
 |    repository over a network filesystem, and no more database "wedges" | 
 |    needing recovery.  You can read the full list of | 
 |    advantages/disadvantages at <a | 
 |    href="http://svn.collab.net/repos/svn/trunk/notes/fsfs" | 
 |         >http://svn.collab.net/repos/svn/trunk/notes/fsfs</a></p> | 
 |  | 
 | <p>To create an fsfs repository, simply run <tt>'svnadmin create | 
 |       --fs-type fsfs'</tt>.  Or, if BerkeleyDB wasn't detected at | 
 |     compile time, <tt>'svnadmin create'</tt> will default to type | 
 |     fsfs.</p> | 
 |  | 
 |  | 
 | <h4>Symlink versioning (<em>new client feature</em>)</h4> | 
 |  | 
 | <p>This feature allows unix users to place symlinks under version | 
 |     control.  (Note: this is <em>not</em> about creating links | 
 |     inside a repository that point to other parts of the repository!)</p> | 
 |  | 
 | <p> When a user adds a unix symlink to version control and commits, | 
 |     the repository stores the object as a file with the "svn:special" | 
 |     property attached.  When the client sees this property during | 
 |     checkouts and updates, the repository file is translated back into | 
 |     a symlink within the working copy.  On win32 systems, the client | 
 |     does no translation, and the user sees just an ordinary file. | 
 |     (But a win32 user can hand-edit the contents of this file, which | 
 |     will still have an affect of changing the symlink on a unix | 
 |     system.)</p> | 
 |  | 
 |  | 
 | <h4>Client follows renames  (<em>new client feature</em>)</h4> | 
 |  | 
 | <p>Subversion makes a lot of noise about the way branches (copies) of | 
 |     files and directories maintain historical connections to their | 
 |     source, but in Subversion 1.0 only <tt>'svn log'</tt> actually | 
 |     follows that history, not <tt>'svn diff'</tt>, <tt>'svn | 
 |     merge'</tt>, <tt>'svn list'</tt>, or <tt>'svn cat'</tt>.</p> | 
 |  | 
 | <p> This problem (<a href="">issue 1093</a>) is now fixed in | 
 |     Subversion 1.1.  All client subcommands now transparently trace | 
 |     backwards through renames when examining older versions of files | 
 |     and directories.</p> | 
 |  | 
 |  | 
 | <h4>Command line auto-escaping of URI and IRIs (<em>new client | 
 | feature</em>)</h4> | 
 |  | 
 | <p>In the 1.0 command line client, users had to escape URLs manually. | 
 |     The client only accepted "legally correct" URLs, such as</p> | 
 | <pre> | 
 |   svn checkout http://host/path%20with%20space/project/espa%C3%B1a | 
 | </pre> | 
 | <p>The 1.1 command line client now knows how to do what web-browsers | 
 |     have been doing for long time: it auto-escapes characters like | 
 |     spaces and other upper-ASCII i18n characters.</p> | 
 | <pre> | 
 |   svn checkout "http://host/path with space/project/españa" | 
 | </pre> | 
 | <p>The definition of an Internationalized URI (IRI) is still a work in | 
 |     progress; see <a | 
 |     href="http://www.w3.org/International/iri-edit/">the draft spec</a>.</p> | 
 |  | 
 |  | 
 |  | 
 | <h4>Localized messages  (<em>new client feature</em>)</h4> | 
 |  | 
 | <p>Subversion 1.1 is now using gettext() to display translated error, | 
 |    informational, and help messages to the user.  We currently have | 
 |    translations for German, Spanish, Polish, Swedish, Norwegian | 
 |    Bokmal, Traditional Chinese, Japanese, and Brazilian Portuguese, | 
 |    and we're looking for volunteers to write translations for | 
 |    other languages.  To localize your Subversion client, just set your | 
 |    LANG environment variable:</p> | 
 |  | 
 |      <pre> | 
 |        $ export LANG=de_DE | 
 |        $ svn help cat | 
 |        cat: Ausgabe des Inhaltes der angegebenen Dateien oder URLs | 
 |        Aufruf: cat ZIEL... | 
 |        [...] | 
 |      </pre> | 
 |  | 
 |  | 
 | <h3>Other Improvements</h3> | 
 |  | 
 | <h4>Speed optimizations: (<em>requires both new client and server</em>)</h4> | 
 | <p>Faster <tt>checkout</tt>, <tt>update</tt>, <tt>status</tt>, and | 
 |       <tt>blame</tt> commands.</p> | 
 |  | 
 | <h4>Shareable working copies:  (<em>client fix</em>)</h4> | 
 |  | 
 | <p>There have been historical problems with permissions when multiple | 
 | users share a working copy.  We believe these problems to be fixed | 
 | now, see <a | 
 | href="http://subversion.tigris.org/issues/show_bug.cgi?id=1509">issue | 
 | #1509</a>.</p> | 
 |  | 
 | <h4>New 'store-passwords' runtime variable:  (<em>new client feature</em>)</h4> | 
 |  | 
 | <p>The previous <tt>store-auth-creds</tt> runtime variable still | 
 | works, but many users were unhappy with it.  It disables <b>all</b> | 
 | credentials caching on local disk: passwords, usernames, server certs. | 
 | This new runtime variable only disables password caching, so that | 
 | server certificates can still be remembered.</p> | 
 |  | 
 | <h4>Bugfixes:</h4> | 
 | <p>More than 40 "small" bugs fixed.  See the <a | 
 | href="http://svn.collab.net/repos/svn/trunk/CHANGES">CHANGES</a> file | 
 |       for details.</p> | 
 |  | 
 | <h4>New subcommand switches:</h4> | 
 |    <dl> | 
 |       <dt><tt>svn blame --verbose</tt></dt> | 
 |       <dd>show extra annotation information</dd> | 
 |  | 
 |       <dt><tt>svn export --native-eol [LF | CRLF]</tt></dt> | 
 |       <dd>forcibly export 'svn:eol-style=native' files with a specific | 
 |       line ending, either LF or CRLF.  Useful for releases (say, | 
 |       creating a win32 zipfile on unix.)</dd> | 
 |  | 
 |       <dt><tt>svn add --force</tt></dt> <dd>forcibly recurse into | 
 |       already-versioned directories.  This allows users to <tt>svn | 
 |       add</tt> every unversioned object, even those hiding deep within a | 
 |       working copy.</dd> | 
 |  | 
 |       <dt><tt>svnadmin dump --deltas</tt></dt> | 
 |       <dd>Creates a smaller dumpfile by including compressed binary | 
 |       diffs, rather than fulltexts.</dd> | 
 |  | 
 |       <dt><tt>svnadmin create --fs-type [fsfs | bdb]</tt></dt> | 
 |       <dd>Create a repository using either 'fsfs' or 'bdb' backend, | 
 |       defaults is 'bdb'.</dd> | 
 |  | 
 |       <dt><tt>svnadmin recover [--wait]</tt></dt> | 
 |       <dd>This command now exits immediately if another process has a | 
 |       lock on the repository.  Use the new <tt>--wait</tt> option to | 
 |       get the old behavior (where svnadmin blocks indefinitely until | 
 |       the lock is freed.)</dd> | 
 |  | 
 |       <dt><tt>svnserve --tunnel-user=NAME</tt></dt> | 
 |       <dd>Used in conjuction with <tt>--tunnel</tt> switch;  tells | 
 |       svnserve to assume that NAME is the authenticated user, rather | 
 |       than the UID of the svnserve process.  Useful for users wishing | 
 |       to share a single system account over SSH, but maintaining | 
 |       separate commit identities.</dd> | 
 |   | 
 |       <dt><tt>svndumpfilter --quiet</tt></dt> | 
 |       <dd>less chatty dumpfiltering.</dd> | 
 |  | 
 |       <dt><tt>svnserve      --version</tt><br/> | 
 |           <tt>svnversion    --version</tt><br/> | 
 |           <tt>svndumpfilter --version</tt></dt> | 
 |       <dd>display version of program.</dd> | 
 |  | 
 |    </dl> | 
 |  | 
 |  | 
 | <h3>Developer Changes</h3> | 
 |  | 
 | <p>A number of new 1.1 functions have been introduced, with the "2" | 
 | suffix, and the older versions are now marked deprecated (and will be | 
 | removed in Subversion 2.0).  For example, a new svn_wc_diff2() | 
 | function has superseded svn_wc_diff().  See the <a | 
 | href="http://svn.collab.net/repos/svn/trunk/CHANGES">CHANGES</a> file | 
 | for details.</p> | 
 |  | 
 | <p>There has been extensive work on the python, perl, and java | 
 | bindings.  More coverage, more functionality, and they're now fully | 
 | integrated into the main Subversion build system (just run 'make | 
 | swig-py' or 'make swig-pl' or 'make javahl').</p> | 
 |  | 
 |  | 
 | <h3>Testimonials and Roadmap</h3> | 
 |  | 
 | <p>See our <a href="roadmap.html">roadmap</a> for what the future | 
 | looks like.</p> | 
 |  | 
 | <p>If you're looking for testimonials on Subversion, see our new <a | 
 | href="http://subversion.tigris.org/testimonials.html">testimonials | 
 | page</a>.</p> | 
 |  | 
 | <p>As usual, you can find links to other | 
 | Subversion-related sites, projects, and essays on our <a | 
 | href="http://subversion.tigris.org/links.html">links | 
 | page</a>.</p> | 
 |  | 
 | </div> | 
 | </body> | 
 | </html> |