Bazaar Release Notes

bzr 1.9


This release of Bazaar adds a new repository format, 1.9, with smaller and more efficient index files. This format can be specified when creating a new repository, or used to losslessly upgrade an existing repository. bzr 1.9 also speeds most operations over the smart server protocol, makes annotate faster, and uses less memory when making checkouts or pulling large amounts of data.

Bug Fixes

  • Fix “invalid property value ‘branch-nick’ for None” regression with branches bound to svn branches. (Martin Pool, #293440)
  • Fix SSL/https on Python2.6. (Vincent Ladeuil, #293054)
  • SFTPTransport.readv() had a bug when requests were out-of-order. This only triggers some-of-the-time on Knit format repositories. (John Arbash Meinel, #293746)

bzr 1.9rc1


New Features

  • New Branch hook transform_fallback_location allows a function to be called when looking up the stacked source. (Michael Hudson)
  • New repository formats 1.9 and 1.9-rich-root. These have all the functionality of 1.6, but use the new btree indexes. These indexes are both smaller and faster for access to historical information. (John Arbash Meinel)


  • BTreeIndex code now is able to prefetch extra pages to help tune the tradeoff between bandwidth and latency. Should be tuned appropriately to not impact commands which need minimal information, but provide a significant boost to ones that need more context. Only has a direct impact on the --development2 format which uses btree’s for the indexes. (John Arbash Meinel)
  • bzr dump-btree is a hidden command introduced to allow dumping the contents of a compressed btree file. (John Arbash Meinel)
  • bzr pack now tells the index builders to optimize for size. For btree index repositories, this can save 25% of the index size (mostly in the text indexes). (John Arbash Meinel)
  • bzr push to an existing branch or repository on a smart server is faster, due to Bazaar making more use of the get_parent_map RPC when querying the remote branch’s revision graph. (Andrew Bennetts)
  • default username for bzr+ssh:// and sftp:// can be configured in authentication.conf. (Aaron Bentley)
  • launchpad-login now provides a default username for bzr+ssh and SFTP URLs, allowing username-free URLs to work for everyone. (Aaron Bentley)
  • lp: lookups no longer include usernames, making them shareable and shorter. (Aaron Bentley)
  • New PackRepository.autopack smart server RPC, which does autopacking entirely on the server. This is much faster than autopacking via plain file methods, which downloads a large amount of pack data and then re-uploads the same pack data into a single file. This fixes a major (although infrequent) cause of lengthy delays when using a smart server. For example, pushing the 10th revision to a repository with 9 packs now takes 44 RPCs rather than 179, and much less bandwidth too. This requires Bazaar 1.9 on both the client and the server, otherwise the client will fallback to the slower method. (Andrew Bennetts)

Bug Fixes

  • A failure to load a plugin due to an IncompatibleAPI exception is now correctly reported. (Robert Collins, #279451)
  • API versioning support now has a multiple-version checking api require_any_api. (Robert Collins, #279447)
  • bzr branch --stacked from a smart server to a standalone branch works again. This fixes a regression in 1.7 and 1.8. (Andrew Bennetts, #270397)
  • bzr co uses less memory. It used to unpack the entire WT into memory before writing it to disk. This was a little bit faster, but consumed lots of memory. (John Arbash Meinel, #269456)
  • bzr missing --quiet no longer prints messages about whether there are missing revisions. The exit code indicates whether there were or not. (Martin Pool, #284748)
  • Fixes to the annotate code. The fast-path which re-used the stored deltas was accidentally disabled all the time, instead of only when a branch was stacked. Second, the code would accidentally re-use a delta even if it wasn’t against the left-parent, this could only happen if bzr reconcile decided that the parent ordering was incorrect in the file graph. (John Arbash Meinel)
  • “Permission denied” errors that occur when pushing a new branch to a smart server no longer cause tracebacks. (Andrew Bennetts, #278673)
  • Some compatibility fixes for building the extensions with MSVC and for python2.4. (John Arbash Meinel, #277484)
  • The index logic is now able to reload the list of pack files if and index ends up disappearing. We still don’t reload if the pack data itself goes missing after checking the index. This bug appears as a transient failure (file not found) when another process is writing to the repository. (John Arbash Meinel, #153786)
  • bzr switch and bzr bind will now update the branch nickname if it was previously set. All checkouts will now refer to the bound branch for a nickname if one was not explicitly set. (Marius Kruger, #230903)


  • Improved hook documentation. (Michael Ernst)

API Changes

  • commands.plugins_cmds is now a CommandRegistry, not a dict.


  • New AuthenticationConfig.set_credentials method allows easy programmatic configuration of authetication credentials.

Table Of Contents

Previous topic

Bazaar Release Notes

Next topic

Bazaar Release Notes

This Page