<!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>What’s New in Bazaar 2.3? — Bazaar 2.6.0 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.6.0', 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 2.6.0 documentation" href="../index.html" /> </head> <body> <div class="related"> <h3>Navigation</h3> <ul> <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.6.0)</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body"> <div class="section" id="what-s-new-in-bazaar-2-3"> <h1>What’s New in Bazaar 2.3?<a class="headerlink" href="#what-s-new-in-bazaar-2-3" title="Permalink to this headline">¶</a></h1> <p>Bazaar 2.3 has been released on the 3rd of February 2011 and marks the start of another long-term-stable series. From here, we will only make bugfix releases on the 2.3 series (2.3.1, etc), while 2.4 will become our new development series. The 2.1 and 2.2 series will also continue to get bugfixes. (Currently 2.0 is planned to be EOLed circa September 2011.)</p> <p>This document accumulates a high level summary of what’s changed. See the <a class="reference internal" href="../release-notes/index.html"><em>Bazaar Release Notes</em></a> for a full list.</p> <p>Users are encouraged to upgrade from the other stable series. This document outlines the improvements in Bazaar 2.3 vs Bazaar 2.2. As well as summarizing improvements made to the core product, it highlights enhancements within the broader Bazaar world of potential interest to those upgrading.</p> <p>Bazaar 2.3.1 includes all the fixes in the un-released 2.0.7, 2.1.4 and 2.2.5 versions that weren’t included in 2.3.0 and fixes some bugs on its own.</p> <p>Bazaar 2.3.2 is a bugfix release that was never released.</p> <p>Bazaar 2.3.3 is a bugfix release including the fixes in 2.3.2 and fixing the test helpers deprecated by python-2.7.</p> <p>Bazaar 2.3.4 is a bugfix release.</p> <p>See the <a class="reference internal" href="../release-notes/index.html"><em>Bazaar Release Notes</em></a> for details.</p> <p>Bazaar 2.3 is fully compatible both locally and on the network with 2.0, 2.1, and 2.2. It can read and write repositories generated by all previous versions.</p> <div class="section" id="changed-behaviour"> <h2>Changed Behaviour<a class="headerlink" href="#changed-behaviour" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>Committing a new revision in a stacked branch is now supported, as long as you are using the current repository format (2a). It will preserve the stacking invariants, etc, so that fetching after commit is guaranteed to work. (John Arbash Meinel, #375013)</li> <li>Support for some old development formats have been removed: <tt class="docutils literal"><span class="pre">development-rich-root</span></tt>, <tt class="docutils literal"><span class="pre">development6-rich-root</span></tt>, and <tt class="docutils literal"><span class="pre">development7-rich-root</span></tt>. These formats were always labelled experimental and not used unless the user specifically asked for them. If you have repositories using these old formats you should upgrade them to <tt class="docutils literal"><span class="pre">2a</span></tt> using Bazaar 2.2. (Andrew Bennetts)</li> <li>The default <tt class="docutils literal"><span class="pre">ignore</span></tt> file created by Bazaar will contain <tt class="docutils literal"><span class="pre">__pycache__</span></tt>, which is the name of the directory that will be used by Python to store bytecode files. (Andrea Corbellini, #626687)</li> <li>The default sort order for the <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">tags</span></tt> command now uses a natural sort where numeric substrings are sorted numerically. The previous default was “asciibetical” where tags were sorted by the characters they contained. To get the old behavior, one can use <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">tags</span> <span class="pre">--sort=alpha</span></tt>. (Neil Martinsen-Burrell, #640760)</li> <li>On platforms other than Windows and Mac OS X, Bazaar will use configuration files that live in $XDG_CONFIG_HOME/bazaar if that directory exists. This allows interested individuals to conform to the XDG Base Directory specification. The plugin location has not changed and is still ~/.bazaar/plugins. To use a different directory for plugins, use the environment variable BZR_PLUGIN_PATH. (Neil Martinsen-Burrell, #195397)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">upgrade</span></tt> now operates recursively when run on a shared repository, automatically upgrading the branches within it, and has grown additional options for showing what it will do and cleaning up after itself. (Ian Clatworthy, Matthew Fuller, #89830, #374734, #422450)</li> </ul> </div> <div class="section" id="launchpad-integration"> <h2>Launchpad integration<a class="headerlink" href="#launchpad-integration" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>The <tt class="docutils literal"><span class="pre">lp:</span></tt> prefix will now use your known username (from <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">launchpad-login</span></tt>) to expand <tt class="docutils literal"><span class="pre">~</span></tt> to your username. For example: <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">launchpad-login</span> <span class="pre">user</span> <span class="pre">&&</span> <span class="pre">bzr</span> <span class="pre">push</span> <span class="pre">lp:~/project/branch</span></tt> will now push to <tt class="docutils literal"><span class="pre">lp:~user/project/branch</span></tt>. (John Arbash Meinel)</li> <li>Launchpad has announced that the <tt class="docutils literal"><span class="pre">edge.launchpad.net</span></tt> instance is deprecated and may be shut down in the future <<a class="reference external" href="http://blog.launchpad.net/general/edge-is-deprecated">http://blog.launchpad.net/general/edge-is-deprecated</a>>. Bazaar has therefore been updated in this release to talk to the main (<tt class="docutils literal"><span class="pre">launchpad.net</span></tt>) servers, rather than the <tt class="docutils literal"><span class="pre">edge</span></tt> ones.</li> </ul> </div> <div class="section" id="performance-improvements"> <h2>Performance improvements<a class="headerlink" href="#performance-improvements" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">revert</span></tt> and <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">status</span></tt> are up to 15% faster on large trees with many changes by not repeatedly building a list of all file-ids. (Andrew Bennetts)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">send</span></tt> uses less memory. (John Arbash Meinel, #614576)</li> <li>Fetches involving stacked branches and branches with tags now do slightly less I/O, and so does branching from an existing branch. This also improves the network performance of these operations. (Andrew Bennetts)</li> <li>Inventory entries now consume less memory (on 32-bit Ubuntu file entries have dropped from 68 bytes to 40, and directory entries from 120 bytes to 48). This affects most operations, and depending on the size of the tree may substantially improve the speed of operations like <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">commit</span></tt>. (Andrew Bennetts)</li> <li>Lower memory consumption when reading many chk index pages. Helpful for things like <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">co</span></tt> or <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">ls</span> <span class="pre">-R</span></tt> on large trees. (John Arbash Meinel)</li> <li>When building new working trees, default to reading from the repository rather than the source tree unless explicitly requested. (via <tt class="docutils literal"><span class="pre">--files-from</span></tt> and <tt class="docutils literal"><span class="pre">--hardlink</span></tt> for <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">branch</span></tt> and <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">checkout</span></tt>. Generally, 2a format repositories extract content faster than seeking and reading content from another tree, especially in cold-cache situations. (John Arbash Meinel, #607298)</li> </ul> </div> <div class="section" id="new-revision-specifiers"> <h2>New revision specifiers<a class="headerlink" href="#new-revision-specifiers" title="Permalink to this headline">¶</a></h2> <ul> <li><p class="first">The <tt class="docutils literal"><span class="pre">mainline</span></tt> revision specifier has been added. It takes another revision spec as its input, and selects the revision which merged that revision into the mainline.</p> <p>For example, <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">log</span> <span class="pre">-vp</span> <span class="pre">-r</span> <span class="pre">mainline:1.2.3</span></tt> will show the log of the revision that merged revision 1.2.3 into mainline, along with its status output and diff. (Aaron Bentley)</p> </li> <li><p class="first">The <tt class="docutils literal"><span class="pre">annotate</span></tt> revision specifier has been added. It takes a path and a line as its input (in the form <tt class="docutils literal"><span class="pre">path:line</span></tt>), and selects the revision which introduced that line of that file.</p> <p>For example: <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">log</span> <span class="pre">-vp</span> <span class="pre">-r</span> <span class="pre">annotate:bzrlib/transform.py:500</span></tt> will select the revision that introduced line 500 of transform.py, and display its log, status output and diff.</p> <p>It can be combined with <tt class="docutils literal"><span class="pre">mainline</span></tt> to select the revision that landed this line into trunk, like so: <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">log</span> <span class="pre">-vp</span> <span class="pre">-r</span> <span class="pre">mainline:annotate:bzrlib/transform.py:500</span></tt> (Aaron Bentley)</p> </li> </ul> </div> <div class="section" id="testing-bug-reporting"> <h2>Testing/Bug reporting<a class="headerlink" href="#testing-bug-reporting" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>Shell-like scripts can now be run directly from the command line without writing a python test. This should help users adding reproducing recipes to bug reports. (Vincent Ladeuil)</li> </ul> </div> <div class="section" id="improved-conflict-handling"> <h2>Improved conflict handling<a class="headerlink" href="#improved-conflict-handling" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li><tt class="docutils literal"><span class="pre">pull</span></tt>, <tt class="docutils literal"><span class="pre">merge</span></tt> or <tt class="docutils literal"><span class="pre">switch</span></tt> can lead to conflicts when deleting a versioned directory contains unversioned files. The cause of the conflict is that deleting the directory will orphan the unversioned files so the user needs to instruct <tt class="docutils literal"><span class="pre">bzr</span></tt> what do to do about these orpahns. This is controlled by setting the <tt class="docutils literal"><span class="pre">bzr.transform.orphan_policy</span></tt> configuration variable with a value of <tt class="docutils literal"><span class="pre">move</span></tt>. In this case the unversioned files are moved to a <tt class="docutils literal"><span class="pre">bzr-orphans</span></tt> directory at the root of the working tree. The default behaviour is specified (if needed) by setting the variable to <tt class="docutils literal"><span class="pre">conflict</span></tt>. (Vincent Ladeuil, #323111)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">resolve</span> <span class="pre">--take-this</span></tt> and <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">resolve</span> <span class="pre">--take-other</span></tt> can now be used for text conflicts. This will ignore the differences that were merged cleanly and replace the file with its content in the current branch (<tt class="docutils literal"><span class="pre">--take-this</span></tt>) or with its content in the merged branch (<tt class="docutils literal"><span class="pre">--take-other</span></tt>). (Vincent Ladeuil, #638451)</li> <li><tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">resolve</span></tt> now provides more feedback about the conflicts just resolved and the remaining ones. (Vincent Ladeuil)</li> </ul> </div> <div class="section" id="documentation"> <h2>Documentation<a class="headerlink" href="#documentation" title="Permalink to this headline">¶</a></h2> <ul class="simple"> <li>A beta version of the documentation is now available in GNU TexInfo format, used by emacs and the standalone <tt class="docutils literal"><span class="pre">info</span></tt> reader. (Vincent Ladeuil, #219334)</li> </ul> </div> <div class="section" id="configuration"> <h2>Configuration<a class="headerlink" href="#configuration" title="Permalink to this headline">¶</a></h2> <p><tt class="docutils literal"><span class="pre">bzr</span></tt> can be configured via environment variables, command-line options and configurations files. We’ve started working on unifying this and give access to more options. The first step is a new <tt class="docutils literal"><span class="pre">bzr</span> <span class="pre">config</span></tt> command that can be used to display the active configuration options in the current working tree or branch as well as the ability to set or remove an option. Scripts can also use it to get only the value for a given option.</p> </div> <div class="section" id="further-information"> <h2>Further information<a class="headerlink" href="#further-information" title="Permalink to this headline">¶</a></h2> <p>For more detailed information on the changes made, see the the <a class="reference internal" href="../release-notes/index.html"><em>Bazaar Release Notes</em></a> for:</p> <ul class="simple"> <li>the interim bzr <a class="reference external" href="https://launchpad.net/bzr/2.3">milestones</a></li> <li>the plugins you use.</li> </ul> <p>For a summary of changes made in earlier releases, see:</p> <ul class="simple"> <li><a class="reference internal" href="whats-new-in-2.1.html"><em>What’s New in Bazaar 2.1?</em></a></li> <li><a class="reference internal" href="whats-new-in-2.2.html"><em>What’s New in Bazaar 2.2?</em></a></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="#">What’s New in Bazaar 2.3?</a><ul> <li><a class="reference internal" href="#changed-behaviour">Changed Behaviour</a></li> <li><a class="reference internal" href="#launchpad-integration">Launchpad integration</a></li> <li><a class="reference internal" href="#performance-improvements">Performance improvements</a></li> <li><a class="reference internal" href="#new-revision-specifiers">New revision specifiers</a></li> <li><a class="reference internal" href="#testing-bug-reporting">Testing/Bug reporting</a></li> <li><a class="reference internal" href="#improved-conflict-handling">Improved conflict handling</a></li> <li><a class="reference internal" href="#documentation">Documentation</a></li> <li><a class="reference internal" href="#configuration">Configuration</a></li> <li><a class="reference internal" href="#further-information">Further information</a></li> </ul> </li> </ul> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/whats-new/whats-new-in-2.3.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" /> <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><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.6.0)</a> »</li> </ul> </div> <div class="footer"> © Copyright 2009-2011 Canonical Ltd. Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 1.1.3. </div> </body> </html>