svn_1.1_releasenotes.html   [plain text]


<!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&ntilde;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>