* subversion/libsvn_fs_fs/structure
[svn.git] / www / svn_1.1_releasenotes.html
blob59ec9396650dbdb4461f61859b4859d1063e5016
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <head>
5 <style type="text/css"> /* <![CDATA[ */
6 @import "branding/css/tigris.css";
7 @import "branding/css/inst.css";
8 /* ]]> */</style>
9 <link rel="stylesheet" type="text/css" media="print"
10 href="branding/css/print.css"/>
11 <script type="text/javascript" src="branding/scripts/tigris.js"></script>
12 <title>Subversion 1.1 Release Notes</title>
13 </head>
15 <body>
16 <div class="app">
18 <h1 style="text-align: center">Subversion 1.1 Release Notes</h1>
19 <h2 style="text-align: center">(and State of the Project)</h2>
21 <p>The <a href="http://svnbook.red-bean.com">Subversion book site</a>
22 has now been forked, and a separate <a
23 href="http://svnbook.red-bean.com/svnbook-1.1/index.html">Subversion
24 1.1 book</a> documents most of <a
25 href="http://svnbook.red-bean.com/svnbook-1.1/pr02s07.html">the new
26 1.1 features</a>. Still, here are some brief release notes.</p>
28 <h3>Overview</h3>
30 <p>Subversion 1.1 can best be summarized as: (1) an optional new
31 non-database repository back-end, and (2) a whole slew of client-side
32 improvements. Details are given below.</p>
34 <p>Note that Subversion 1.1 is a superset of all the Subversion 1.0.x
35 releases. The 1.0.x releases contain nothing but critical bugfixes
36 backported from the 1.1 development line. Subversion 1.1 introduces
37 new features and fixes many smaller bugs.</p>
39 <h3>Compatibility Concerns</h3>
41 <p>Subversion's compatibility and version-numbering policy is
42 documented in the
43 <a href="hacking.html#release-numbering">Hacker's Guide to
44 Subversion</a>. Here's a quick summary:</p>
46 <ul>
48 <li><p><em>Database schema</em>: if upgrading to Subversion 1.1, there
49 is <strong>no need</strong> to dump and load your repository.
50 There will be no changes requiring dump/load before Subversion
51 2.0.</p></li>
53 <li><p><em>Client/server compatibility</em>: a 1.X client and 1.Y
54 server are always interoperable. However, the latest features
55 or bugfixes may not be available unless both client and server
56 are the latest version.</p></li>
58 <li><p><em>API/ABI compatibility</em>: the 1.1 release only adds new
59 functions; thus a 1.0 program can both compile against and
60 use 1.1 libraries at run-time, but a 1.1 program cannot use
61 1.0 libraries.</p></li>
63 </ul>
66 <h3>New Major Features</h3>
68 <h4>Non-database repositories (<em>new server feature</em>)</h4>
70 <p>It's now possible to create repositories that don't use a
71 BerkeleyDB database. Instead, these new repositories store data in
72 the ordinary filesystem. Because Subversion developers often refer
73 to the repository as "The Filesystem", we have adopted the rather
74 confusing habit of referring to these new repositories as "fsfs"
75 repositories... that is, a Filesystem implementation that uses the
76 OS filesystem to store data.</p>
78 <p>Note that the data files created by fsfs repositories are still in
79 a binary format, and are not human editable!</p>
81 <p>Why would someone choose an fsfs repository over BerkeleyDB? The
82 immediate and obvious advantages are the ability to access a
83 repository over a network filesystem, and no more database "wedges"
84 needing recovery. You can read the full list of
85 advantages/disadvantages at <a
86 href="http://svn.collab.net/repos/svn/trunk/notes/fsfs"
87 >http://svn.collab.net/repos/svn/trunk/notes/fsfs</a></p>
89 <p>To create an fsfs repository, simply run <tt>'svnadmin create
90 --fs-type fsfs'</tt>. Or, if BerkeleyDB wasn't detected at
91 compile time, <tt>'svnadmin create'</tt> will default to type
92 fsfs.</p>
95 <h4>Symlink versioning (<em>new client feature</em>)</h4>
97 <p>This feature allows unix users to place symlinks under version
98 control. (Note: this is <em>not</em> about creating links
99 inside a repository that point to other parts of the repository!)</p>
101 <p> When a user adds a unix symlink to version control and commits,
102 the repository stores the object as a file with the "svn:special"
103 property attached. When the client sees this property during
104 checkouts and updates, the repository file is translated back into
105 a symlink within the working copy. On win32 systems, the client
106 does no translation, and the user sees just an ordinary file.
107 (But a win32 user can hand-edit the contents of this file, which
108 will still have an affect of changing the symlink on a unix
109 system.)</p>
112 <h4>Client follows renames (<em>new client feature</em>)</h4>
114 <p>Subversion makes a lot of noise about the way branches (copies) of
115 files and directories maintain historical connections to their
116 source, but in Subversion 1.0 only <tt>'svn log'</tt> actually
117 follows that history, not <tt>'svn diff'</tt>, <tt>'svn
118 merge'</tt>, <tt>'svn list'</tt>, or <tt>'svn cat'</tt>.</p>
120 <p> This problem (<a href="">issue 1093</a>) is now fixed in
121 Subversion 1.1. All client subcommands now transparently trace
122 backwards through renames when examining older versions of files
123 and directories.</p>
126 <h4>Command line auto-escaping of URI and IRIs (<em>new client
127 feature</em>)</h4>
129 <p>In the 1.0 command line client, users had to escape URLs manually.
130 The client only accepted "legally correct" URLs, such as</p>
131 <pre>
132 svn checkout http://host/path%20with%20space/project/espa%C3%B1a
133 </pre>
134 <p>The 1.1 command line client now knows how to do what web-browsers
135 have been doing for long time: it auto-escapes characters like
136 spaces and other upper-ASCII i18n characters.</p>
137 <pre>
138 svn checkout "http://host/path with space/project/espa&ntilde;a"
139 </pre>
140 <p>The definition of an Internationalized URI (IRI) is still a work in
141 progress; see <a
142 href="http://www.w3.org/International/iri-edit/">the draft spec</a>.</p>
146 <h4>Localized messages (<em>new client feature</em>)</h4>
148 <p>Subversion 1.1 is now using gettext() to display translated error,
149 informational, and help messages to the user. We currently have
150 translations for German, Spanish, Polish, Swedish, Norwegian
151 Bokmal, Traditional Chinese, Japanese, and Brazilian Portuguese,
152 and we're looking for volunteers to write translations for
153 other languages. To localize your Subversion client, just set your
154 LANG environment variable:</p>
156 <pre>
157 $ export LANG=de_DE
158 $ svn help cat
159 cat: Ausgabe des Inhaltes der angegebenen Dateien oder URLs
160 Aufruf: cat ZIEL...
161 [...]
162 </pre>
165 <h3>Other Improvements</h3>
167 <h4>Speed optimizations: (<em>requires both new client and server</em>)</h4>
168 <p>Faster <tt>checkout</tt>, <tt>update</tt>, <tt>status</tt>, and
169 <tt>blame</tt> commands.</p>
171 <h4>Shareable working copies: (<em>client fix</em>)</h4>
173 <p>There have been historical problems with permissions when multiple
174 users share a working copy. We believe these problems to be fixed
175 now, see <a
176 href="http://subversion.tigris.org/issues/show_bug.cgi?id=1509">issue
177 #1509</a>.</p>
179 <h4>New 'store-passwords' runtime variable: (<em>new client feature</em>)</h4>
181 <p>The previous <tt>store-auth-creds</tt> runtime variable still
182 works, but many users were unhappy with it. It disables <b>all</b>
183 credentials caching on local disk: passwords, usernames, server certs.
184 This new runtime variable only disables password caching, so that
185 server certificates can still be remembered.</p>
187 <h4>Bugfixes:</h4>
188 <p>More than 40 "small" bugs fixed. See the <a
189 href="http://svn.collab.net/repos/svn/trunk/CHANGES">CHANGES</a> file
190 for details.</p>
192 <h4>New subcommand switches:</h4>
193 <dl>
194 <dt><tt>svn blame --verbose</tt></dt>
195 <dd>show extra annotation information</dd>
197 <dt><tt>svn export --native-eol [LF | CRLF]</tt></dt>
198 <dd>forcibly export 'svn:eol-style=native' files with a specific
199 line ending, either LF or CRLF. Useful for releases (say,
200 creating a win32 zipfile on unix.)</dd>
202 <dt><tt>svn add --force</tt></dt> <dd>forcibly recurse into
203 already-versioned directories. This allows users to <tt>svn
204 add</tt> every unversioned object, even those hiding deep within a
205 working copy.</dd>
207 <dt><tt>svnadmin dump --deltas</tt></dt>
208 <dd>Creates a smaller dumpfile by including compressed binary
209 diffs, rather than fulltexts.</dd>
211 <dt><tt>svnadmin create --fs-type [fsfs | bdb]</tt></dt>
212 <dd>Create a repository using either 'fsfs' or 'bdb' backend,
213 defaults is 'bdb'.</dd>
215 <dt><tt>svnadmin recover [--wait]</tt></dt>
216 <dd>This command now exits immediately if another process has a
217 lock on the repository. Use the new <tt>--wait</tt> option to
218 get the old behavior (where svnadmin blocks indefinitely until
219 the lock is freed.)</dd>
221 <dt><tt>svnserve --tunnel-user=NAME</tt></dt>
222 <dd>Used in conjuction with <tt>--tunnel</tt> switch; tells
223 svnserve to assume that NAME is the authenticated user, rather
224 than the UID of the svnserve process. Useful for users wishing
225 to share a single system account over SSH, but maintaining
226 separate commit identities.</dd>
228 <dt><tt>svndumpfilter --quiet</tt></dt>
229 <dd>less chatty dumpfiltering.</dd>
231 <dt><tt>svnserve --version</tt><br/>
232 <tt>svnversion --version</tt><br/>
233 <tt>svndumpfilter --version</tt></dt>
234 <dd>display version of program.</dd>
236 </dl>
239 <h3>Developer Changes</h3>
241 <p>A number of new 1.1 functions have been introduced, with the "2"
242 suffix, and the older versions are now marked deprecated (and will be
243 removed in Subversion 2.0). For example, a new svn_wc_diff2()
244 function has superseded svn_wc_diff(). See the <a
245 href="http://svn.collab.net/repos/svn/trunk/CHANGES">CHANGES</a> file
246 for details.</p>
248 <p>There has been extensive work on the python, perl, and java
249 bindings. More coverage, more functionality, and they're now fully
250 integrated into the main Subversion build system (just run 'make
251 swig-py' or 'make swig-pl' or 'make javahl').</p>
254 <h3>Testimonials and Roadmap</h3>
256 <p>See our <a href="roadmap.html">roadmap</a> for what the future
257 looks like.</p>
259 <p>If you're looking for testimonials on Subversion, see our new <a
260 href="http://subversion.tigris.org/testimonials.html">testimonials
261 page</a>.</p>
263 <p>As usual, you can find links to other
264 Subversion-related sites, projects, and essays on our <a
265 href="http://subversion.tigris.org/links.html">links
266 page</a>.</p>
268 </div>
269 </body>
270 </html>