What’s New in Bazaar 2.5?

Bazaar 2.5 has been released on the 24th of February 2012 and marks the start of a new long-term-stable series. From here, we will only make bugfix releases on the 2.5 series (2.5.1, etc, and support it until April 2017), while 2.6 will become our new development series.

This document accumulates a high level summary of what’s changed. See the Bazaar Release Notes for a full list.

Users are encouraged to upgrade from the other stable series. This document outlines the improvements in Bazaar 2.5 vs Bazaar 2.4. As well as summarizing improvements made to the core product, it highlights enhancements within the broader Bazaar world of potential interest to those upgrading.

Bazaar 2.5.0 is fully compatible both locally and on the network with 2.0, 2.1, 2.2, 2.3 and 2.4, and can read and write repositories generated by all previous versions.

Bazaar 2.5.1 includes all the fixes in the un-released 2.0.7, 2.1.5, 2.2.6, 2.3.5 and 2.4.3 versions that weren’t included in 2.5.0 and fixes some bugs on its own.

Overriding configuration options from the command line

The -O parameter available for all bzr commands allows a user to override a configuration option from the command line. For example:

bzr pull -v -Olog_format=line

will change the way the pulled revisions are displayed (the default log format is long). This a work in progress and only some options are supported so far.

Working on a posix system without a locale

Previously bzr needed a valid locale set to work with branches containing non-ascii filenames. It will now use utf-8 rather than ascii as a fallback encoding for interacting with the filesystem. This makes creating a working tree and commiting to it possible for such branches in most environments.

SSL Certificate Verification Support in urllib HTTPS backend

In previous versions of Bazaar, only one of the two supported HTTPS backends, pycurl, supported verification of SSL certificates. This version also introduces this support for the urllib backend.

Along with this support two new options have been introduced to control which CA’s are trusted and to what degree server certificates should be verified. See bzr help ssl.ca_certs and bzr help ssl.cert_reqs for more information

Users who have previously used the urllib HTTPS backend with servers with invalid or untrusted certificates can continue to do so by adding the required certificates to the trusted CA certificate file (recommended) or by setting the ssl.cert_reqs option to none.

Faster smart server

A large number of new methods have been added to the smart server, making raw file access through the VFS unnecessary in almost all situations, with the major exception of operations involving stacked branches.

Commands that have become significantly faster when using a remote branch over bzr://, bzr+ssh:// or bzr+http:// include:

  • bzr checkout --lightweight
  • bzr export
  • bzr cat
  • bzr ls
  • bzr send

Several commands which used to make multiple connections to the server now make only a single one. Connection setup has a fairly high overhead, especially to Launchpad, so this can save several seconds for some commands.

To benefit from the improved smart server, both the server and the client need to be running bzr 2.5.

Basic colocated branch support

The UI now has basic support for colocated branches. In full URLs, a specific colocated branch can be specified using URL path segment parameters. For example a branch named stronk could be addressed using http://example.com/path/to/dir,branch=stronk.

The new bzr branches command can be used to list all present branches in a directory, and indicates what the currently active branch is.

Several commands also accept co-located branch names directly, such as bzr switch.

Feature flags

All Bazaar formats now allow setting feature flags. These can be used by plugins to extend Bazaar formats and require the presence of particular plugins or versions of Bazaar to open them, without having to introduce completely new formats.

See doc/developers/feature-flags.txt for details.

Branch history access

Several commands or options that previously required access to the full branch history now only access those parts of the history they actually need. This significantly improves their performance for branches with large histories.

GPG signatures

A new command bzr verify-signatures can be used to verify GPG signatures made with bzr commit or the bzr sign-my-commits command.


Most error messages, help topics and other user-visible text can now be translated. Initial translations for Russian, Japanese and Spanish exist.

PO merge plugin

The po_merge plugin has been added. It provides a merge hook to automate merging of changes to gettext template files. Refer to bzr help po_merge for documentation on how to enable it and what it can do.

Documentation in texinfo format

Sphinx (>= 1.1.2) provides a better texinfo builder than the alpha-quality one provided with bzr sources. Most of the bzr documentation can be processed and produce valid .info files.

Further information

For more detailed information on the changes made, see the the Bazaar Release Notes for:

For a summary of changes made in earlier releases, see: