<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>bzr 0.11rc1 — Bazaar v2.2.4 documentation</title> <link rel="stylesheet" href="../_static/default.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '2.2.4', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="shortcut icon" href="../_static/bzr.ico"/> <link rel="top" title="Bazaar v2.2.4 documentation" href="../index.html" /> <link rel="up" title="Bazaar Release Notes" href="index.html" /> <link rel="next" title="bzr 0.10" href="bzr-0.10.html" /> <link rel="prev" title="bzr 0.11rc2" href="bzr-0.11rc2.html" /> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="bzr-0.10.html" title="bzr 0.10" accesskey="N">next</a></li> <li class="right" > <a href="bzr-0.11rc2.html" title="bzr 0.11rc2" accesskey="P">previous</a> |</li> <li><a href="http://bazaar.canonical.com/"> <img src="../_static/bzr icon 16.png" /> Home</a> | </li> <a href="http://doc.bazaar.canonical.com/en/">Documentation</a> | </li> <li><a href="../index.html">Table of Contents (2.2.4)</a> »</li> <li><a href="index.html" accesskey="U">Bazaar Release Notes</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="bzr-0-11rc1"> <h1>bzr 0.11rc1<a class="headerlink" href="#bzr-0-11rc1" title="Permalink to this headline">¶</a></h1> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> <tbody valign="top"> <tr class="field"><th class="field-name">Released:</th><td class="field-body">2006-09-25</td> </tr> </tbody> </table> <div class="section" id="improvements"> <h2>Improvements<a class="headerlink" href="#improvements" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>Knit files now wait to create their contents until the first data is added. The old code used to create an empty .knit and a .kndx with just the header. However, this caused a lot of extra round trips over sftp. This can change the time for <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">push</span></tt> to create a new remote branch from 160s down to 100s. This also affects <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span></tt> performance when adding new files, <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span></tt> on a new kernel-like tree drops from 50s down to 40s (John Arbash Meinel, #44692)</li> <li>When an entire subtree has been deleted, commit will now report that just the top of the subtree has been deleted, rather than reporting all the individual items. (Robert Collins)</li> <li>Commit performs one less XML parse. (Robert Collins)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">checkout</span></tt> now operates on readonly branches as well as readwrite branches. This fixes bug #39542. (Robert Collins)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">bind</span></tt> no longer synchronises history with the master branch. Binding should be followed by an update or push to synchronise the two branches. This is closely related to the fix for bug #39542. (Robert Collins)</li> <li><tt class="docutils literal"><span class="pre">bzrlib.lazy_import.lazy_import</span></tt> function to create on-demand objects. This allows all imports to stay at the global scope, but modules will not actually be imported if they are not used. (John Arbash Meinel)</li> <li>Support <tt class="docutils literal"><span class="pre">bzr://</span></tt> and <tt class="docutils literal"><span class="pre">bzr+ssh://</span></tt> urls to work with the new RPC-based transport which will be used with the upcoming high-performance smart server. The new command <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">serve</span></tt> will invoke bzr in server mode, which processes these requests. (Andrew Bennetts, Robert Collins, Martin Pool)</li> <li>New command <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">version-info</span></tt> which can be used to get a summary of the current state of the tree. This is especially useful as part of a build commands. See <tt class="docutils literal"><span class="pre">doc/version_info.txt</span></tt> for more information (John Arbash Meinel)</li> </ul> </div> <div class="section" id="bug-fixes"> <h2>Bug Fixes<a class="headerlink" href="#bug-fixes" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li><tt class="docutils literal"><span class="pre">'bzr</span> <span class="pre">inventory</span> <span class="pre">[FILE...]'</span></tt> allows restricting the file list to a specific set of files. (John Arbash Meinel, #3631)</li> <li>Don’t abort when annotating empty files (John Arbash Meinel, #56814)</li> <li>Add <tt class="docutils literal"><span class="pre">Stanza.to_unicode()</span></tt> which can be passed to another Stanza when nesting stanzas. Also, add <tt class="docutils literal"><span class="pre">read_stanza_unicode</span></tt> to handle when reading a nested Stanza. (John Arbash Meinel)</li> <li>Transform._set_mode() needs to stat the right file. (John Arbash Meinel, #56549)</li> <li>Raise WeaveFormatError rather than StopIteration when trying to read an empty Weave file. (John Arbash Meinel, #46871)</li> <li>Don’t access e.code for generic URLErrors, only HTTPErrors have .code. (Vincent Ladeuil, #59835)</li> <li>Handle boundary=”” lines properly to allow access through a Squid proxy. (John Arbash Meinel, #57723)</li> <li>revert now removes newly-added directories (Aaron Bentley, #54172)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">upgrade</span> <span class="pre">sftp://</span></tt> shouldn’t fail to upgrade v6 branches if there isn’t a working tree. (David Allouche, #40679)</li> <li>Give nicer error messages when a user supplies an invalid –revision parameter. (John Arbash Meinel, #55420)</li> <li>Handle when LANG is not recognized by python. Emit a warning, but just revert to using ‘ascii’. (John Arbash Meinel, #35392)</li> <li>Don’t use <tt class="docutils literal"><span class="pre">preexec_fn</span></tt> on win32, as it is not supported by subprocess. (John Arbash Meinel)</li> <li>Skip specific tests when the dependencies aren’t met. This includes some <tt class="docutils literal"><span class="pre">setup.py</span></tt> tests when <tt class="docutils literal"><span class="pre">python-dev</span></tt> is not available, and some tests that depend on paramiko. (John Arbash Meinel, Mattheiu Moy)</li> <li>Fallback to Paramiko properly, if no <tt class="docutils literal"><span class="pre">ssh</span></tt> executable exists on the system. (Andrew Bennetts, John Arbash Meinel)</li> <li><tt class="docutils literal"><span class="pre">Branch.bind(other_branch)</span></tt> no longer takes a write lock on the other branch, and will not push or pull between the two branches. API users will need to perform a push or pull or update operation if they require branch synchronisation to take place. (Robert Collins, #43744)</li> <li>When creating a tarball or zipfile export, export unicode names as utf-8 paths. This may not work perfectly on all platforms, but has the best chance of working in the common case. (John Arbash Meinel, #56815)</li> <li>When committing, only files that exist in working tree or basis tree may be specified (Aaron Bentley, #50793)</li> </ul> </div> <div class="section" id="portability"> <h2>Portability<a class="headerlink" href="#portability" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>Fixes to run on Python 2.5 (Brian M. Carlson, Martin Pool, Marien Zwart)</li> </ul> </div> <div class="section" id="internals"> <h2>Internals<a class="headerlink" href="#internals" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>TestCaseInTempDir now creates a separate directory for HOME, rather than having HOME set to the same location as the working directory. (John Arbash Meinel)</li> <li><tt class="docutils literal"><span class="pre">run_bzr_subprocess()</span></tt> can take an optional <tt class="docutils literal"><span class="pre">env_changes={}</span></tt> parameter, which will update os.environ inside the spawned child. It also can take a <tt class="docutils literal"><span class="pre">universal_newlines=True</span></tt>, which helps when checking the output of the command. (John Arbash Meinel)</li> <li>Refactor SFTP vendors to allow easier re-use when ssh is used. (Andrew Bennetts)</li> <li><tt class="docutils literal"><span class="pre">Transport.list_dir()</span></tt> and <tt class="docutils literal"><span class="pre">Transport.iter_files_recursive()</span></tt> should always return urlescaped paths. This is now tested (there were bugs in a few of the transports) (Andrew Bennetts, David Allouche, John Arbash Meinel)</li> <li>New utility function <tt class="docutils literal"><span class="pre">symbol_versioning.deprecation_string</span></tt>. Returns the formatted string for a callable, deprecation format pair. (Robert Collins)</li> <li>New TestCase helper applyDeprecated. This allows you to call a callable which is deprecated without it spewing to the screen, just by supplying the deprecation format string issued for it. (Robert Collins)</li> <li>Transport.append and Transport.put have been deprecated in favor of <tt class="docutils literal"><span class="pre">.append_bytes</span></tt>, <tt class="docutils literal"><span class="pre">.append_file</span></tt>, <tt class="docutils literal"><span class="pre">.put_bytes</span></tt>, and <tt class="docutils literal"><span class="pre">.put_file</span></tt>. This removes the ambiguity in what type of object the functions take. <tt class="docutils literal"><span class="pre">Transport.non_atomic_put_{bytes,file}</span></tt> has also been added. Which works similarly to <tt class="docutils literal"><span class="pre">Transport.append()</span></tt> except for SFTP, it doesn’t have a round trip when opening the file. Also, it provides functionality for creating a parent directory when trying to create a file, rather than raise NoSuchFile and forcing the caller to repeat their request. (John Arbash Meinel)</li> <li>WorkingTree has a new api <tt class="docutils literal"><span class="pre">unversion</span></tt> which allow the unversioning of entries by their file id. (Robert Collins)</li> <li><tt class="docutils literal"><span class="pre">WorkingTree.pending_merges</span></tt> is deprecated. Please use the <tt class="docutils literal"><span class="pre">get_parent_ids</span></tt> (introduced in 0.10) method instead. (Robert Collins)</li> <li>WorkingTree has a new <tt class="docutils literal"><span class="pre">lock_tree_write</span></tt> method which locks the branch for read rather than write. This is appropriate for actions which only need the branch data for reference rather than mutation. A new decorator <tt class="docutils literal"><span class="pre">needs_tree_write_lock</span></tt> is provided in the workingtree module. Like the <tt class="docutils literal"><span class="pre">needs_read_lock</span></tt> and <tt class="docutils literal"><span class="pre">needs_write_lock</span></tt> decorators this allows static declaration of the locking requirements of a function to ensure that a lock is taken out for casual scripts. (Robert Collins, #54107)</li> <li>All WorkingTree methods which write to the tree, but not to the branch have been converted to use <tt class="docutils literal"><span class="pre">needs_tree_write_lock</span></tt> rather than <tt class="docutils literal"><span class="pre">needs_write_lock</span></tt>. Also converted is the revert, conflicts and tree transform modules. This provides a modest performance improvement on metadir style trees, due to the reduce lock-acquisition, and a more significant performance improvement on lightweight checkouts from remote branches, where trivial operations used to pay a significant penalty. It also provides the basis for allowing readonly checkouts. (Robert Collins)</li> <li>Special case importing the standard library ‘copy’ module. This shaves off 40ms of startup time, while retaining compatibility. See: <tt class="docutils literal"><span class="pre">bzrlib/inspect_for_copy.py</span></tt> for more details. (John Arbash Meinel)</li> <li>WorkingTree has a new parent class MutableTree which represents the specialisations of Tree which are able to be altered. (Robert Collins)</li> <li>New methods mkdir and <tt class="docutils literal"><span class="pre">put_file_bytes_non_atomic</span></tt> on MutableTree that mutate the tree and its contents. (Robert Collins)</li> <li>Transport behaviour at the root of the URL is now defined and tested. (Andrew Bennetts, Robert Collins)</li> </ul> </div> <div class="section" id="testing"> <h2>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>New test helper classs MemoryTree. This is typically accessed via <tt class="docutils literal"><span class="pre">self.make_branch_and_memory_tree()</span></tt> in test cases. (Robert Collins)</li> <li>Add <tt class="docutils literal"><span class="pre">start_bzr_subprocess</span></tt> and <tt class="docutils literal"><span class="pre">stop_bzr_subprocess</span></tt> to allow test code to continue running concurrently with a subprocess of bzr. (Andrew Bennetts, Robert Collins)</li> <li>Add a new method <tt class="docutils literal"><span class="pre">Transport.get_smart_client()</span></tt>. This is provided to allow upgrades to a richer interface than the VFS one provided by Transport. (Andrew Bennetts, Martin Pool)</li> </ul> </div> </div> </div> </div> </div> <div class="sphinxsidebar"> <div class="sphinxsidebarwrapper"> <h3><a href="../index.html">Table Of Contents</a></h3> <ul> <li><a class="reference internal" href="#">bzr 0.11rc1</a><ul> <li><a class="reference internal" href="#improvements">Improvements</a></li> <li><a class="reference internal" href="#bug-fixes">Bug Fixes</a></li> <li><a class="reference internal" href="#portability">Portability</a></li> <li><a class="reference internal" href="#internals">Internals</a></li> <li><a class="reference internal" href="#testing">Testing</a></li> </ul> </li> </ul> <h4>Previous topic</h4> <p class="topless"><a href="bzr-0.11rc2.html" title="previous chapter">bzr 0.11rc2</a></p> <h4>Next topic</h4> <p class="topless"><a href="bzr-0.10.html" title="next chapter">bzr 0.10</a></p> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/release-notes/bzr-0.11rc1.txt" rel="nofollow">Show Source</a></li> </ul> <div id="searchbox" style="display: none"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <input type="text" name="q" size="18" /> <input type="submit" value="Go" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> <p class="searchtip" style="font-size: 90%"> Enter search terms or a module, class or function name. </p> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="bzr-0.10.html" title="bzr 0.10" >next</a></li> <li class="right" > <a href="bzr-0.11rc2.html" title="bzr 0.11rc2" >previous</a> |</li> <li><a href="http://bazaar.canonical.com/"> <img src="../_static/bzr icon 16.png" /> Home</a> | </li> <a href="http://doc.bazaar.canonical.com/en/">Documentation</a> | </li> <li><a href="../index.html">Table of Contents (2.2.4)</a> »</li> <li><a href="index.html" >Bazaar Release Notes</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009, Canonical Ltd. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.0.7. </div> </body> </html>