Bazaar Release Notes

bzr 1.5


This release of Bazaar includes several updates to the documentation, and fixes to prepare for making rich root support the default format. Many bugs have been squashed, including fixes to log, bzr+ssh inter-operation with older servers.


  • Suppress deprecation warnings when bzrlib is a ‘final’ release. This way users of packaged software won’t be bothered with DeprecationWarnings, but developers and testers will still see them. (John Arbash Meinel)


  • Incorporate feedback from Jelmer Vernooij and Neil Martinsen-Burrell on the plugin and integration chapters of the User Guide. (Ian Clatworthy)

bzr 1.5rc1



  • Broader support of GNU Emacs mail clients. Set mail_client=emacsclient in your bazaar.conf and send will pop the bundle in a mail buffer according to the value of mail-user-agent variable. (Xavier Maillard)


  • Diff now handles revision specs like “branch:” and “submit:” more efficiently. (Aaron Bentley, #202928)
  • More friendly error given when attempt to start the smart server on an address already in use. (Andrea Corbellini, #200575)
  • Pull completes much faster when there is nothing to pull. (Aaron Bentley)


  • Authentication.conf can define sections without password. (Vincent Ladeuil, #199440)
  • Avoid muttering every time a child update does not cause a progress bar update. (John Arbash Meinel, #213771)
  • Branch.reconcile() is now implemented. This allows bzr reconcile to fix when a Branch has a non-canonical mainline history. bzr check also detects this condition. (John Arbash Meinel, #177855)
  • bzr log -r ..X bzr:// was failing, because it was getting a request for revision_id=None which was not a string. (John Arbash Meinel, #211661)
  • bzr commit now works with Microsoft’s FTP service. (Andreas Deininger)
  • Catch definitions outside sections in authentication.conf. (Vincent Ladeuil, #217650)
  • Conversion from non-rich-root to rich-root(-pack) updates inventory sha1s, even when bundles are used. (Aaron Bentley, #181391)
  • Conversion from non-rich-root to rich-root(-pack) works correctly even though search keys are not topologically sorted. (Aaron Bentley)
  • Conversion from non-rich-root to rich-root(-pack) works even when a parent revision has a different root id. (Aaron Bentley, #177874)
  • Disable strace testing until strace is fixed (see bug #103133) and emit a warning when selftest ends to remind us of leaking tests. (Vincent Ladeuil, #226769)
  • Fetching all revisions from a repository does not cause pack collisions. (Robert Collins, Aaron Bentley, #212908)
  • Fix error about “attempt to add line-delta in non-delta knit”. (Andrew Bennetts, #217701)
  • Pushing a branch in “dirstate” format (Branch5) over bzr+ssh would break if the remote server was < version 1.2. This was due to a bug in the RemoteRepository.get_parent_map() fallback code. (John Arbash Meinel, #214894)
  • Remove leftover code in bzr_branch that inappropriately creates a branch-name file in the branch control directory. (Martin Pool)
  • Set SO_REUSEADDR on server sockets of bzr serve to avoid problems rebinding the socket when starting the server a second time. (John Arbash Meinel, Martin Pool, #164288)
  • Severe performance degradation in fetching from knit repositories to knits and packs due to parsing the entire revisions.kndx on every graph walk iteration fixed by using the Repository.get_graph API. There was another regression in knit => knit fetching which re-read the index for every revision each side had in common. (Robert Collins, John Arbash Meinel)
  • When logging the changes to a particular file, there was a bug if there were ghosts in the revision ancestry. (John Arbash Meinel, #209948)
  • xs4all’s FTP server returns a temporary error when trying to list an empty directory, rather than returning an empty list. Adding a workaround so that we don’t get spurious failures. (John Arbash Meinel, #215522)


  • Expanded the User Guide to include new chapters on popular plugins and integrating Bazaar into your environment. The Best practices chapter was renamed to Miscellaneous topics as suggested by community feedback as well. (Ian Clatworthy)
  • Document outlining strategies for TortoiseBzr. (Mark Hammond)
  • Improved the documentation on hooks. (Ian Clatworthy)
  • Update authentication docs regarding SSH agents. (Vincent Ladeuil, #183705)


  • Add thread_name_suffix parameter to SmartTCPServer_for_testing, to make it easy to identify which test spawned a thread with an unhandled exception. (Andrew Bennetts)
  • New --debugflag/-E option to bzr selftest for setting options for debugging tests, these are complementary to the -D options. The -Dselftest_debug global option has been replaced by the -E=allow_debug option for selftest. (Andrew Bennetts)
  • Parameterised test ids are preserved correctly to aid diagnosis of test failures. (Robert Collins, Andrew Bennetts)
  • selftest now accepts –starting-with <id> to load only the tests whose id starts with the one specified. This greatly speeds up running the test suite on a limited set of tests and can be used to run the tests for a single module, a single class or even a single test. (Vincent Ladeuil)
  • The test suite modules have been modified to define load_tests() instead of test_suite(). That speeds up selective loading (via –load-list) significantly and provides many examples on how to migrate (grep for load_tests). (Vincent Ladeuil)


  • Hooks.install_hook is now deprecated in favour of Hooks.install_named_hook which adds a required name parameter, to avoid having to call Hooks.name_hook. (Daniel Watkins)
  • Implement xml8 serializer. (Aaron Bentley)
  • New form @deprecated_method(deprecated_in(1, 5, 0)) for making deprecation wrappers. (Martin Pool)
  • Repository.revision_parents is now deprecated in favour of Repository.get_parent_map([revid])[revid]. (Jelmer Vernooij)
  • The Python assert statement is no longer used in Bazaar source, and a test checks this. (Martin Pool)

API Changes

  • bzrlib.status.show_pending_merges requires the repository to be locked by the caller. Callers should have been doing it anyway, but it will now raise an exception if they do not. (John Arbash Meinel)
  • Repository.get_data_stream, Repository.get_data_stream_for_search(), Repository.get_deltas_for_revsions(), Repository.revision_trees(), Repository.item_keys_introduced_by() no longer take read locks. (Aaron Bentley)
  • LockableFiles.get_utf8 and .get are deprecated, as a start towards removing LockableFiles and .control_files entirely. (Martin Pool)
  • Methods deprecated prior to 1.1 have been removed. (Martin Pool)

Table Of Contents

Previous topic

Bazaar Release Notes

Next topic

Bazaar Release Notes

This Page