We discovered a couple of bugs in the 1.16 release that we simply had to fix now. As such...
The Bazaar team is mostly happy & just a little bit embarrassed to announce availability of a new release of the bzr adaptive version control system. Bazaar is part of the GNU system http://gnu.org/.
End user testing of the 2a format revealed two serious bugs. The first, #365615, caused bzr to raise AbsentContentFactory errors when autopacking. This meant that commits or pushes to 2a-format repositories failed intermittently.
The second bug, #390563, caused the smart server to raise AbsentContentFactory when streaming 2a stacked 2a-format branches. This particularly affected branches stored on Launchpad in the 2a format.
Both of these bugs cause command failures only, neither of them cause data corruption or data loss. And, of course, both of these bugs are now fixed.
Thanks in particular to Robert Collins and John Arbash Meinel for fixing these bugs.
Bazaar is now available for download from http://bazaar-vcs.org/Download as a source tarball; packages for various systems will be available soon.
Bug Fixes *********
* We now properly request a more minimal set of file texts when fetching multiple revisions. (Robert Collins, John Arbash Meinel, #390563)
* Repositories using CHK pages (which includes the new 2a format) will no longer error during commit or push operations when an autopack operation is triggered. (Robert Collins, #365615)
* ``chk_map.iter_interesting_nodes`` now properly uses the *intersection* of referenced nodes rather than the *union* to determine what uninteresting pages we still need to look at. Prior to this, incrementally pushing to stacked branch would push the minimal data, but fetching everything would request extra texts. There are some unhandled cases wrt trees of different depths, but this fixes the common cases. (Robert Collins, John Arbash Meinel, #390563)
* ``GroupCompress`` repositories now take advantage of the pack hints parameter to permit cross-format fetching to incrementally pack the converted data. (Robert Collins)
* ``Repository.commit_write_group`` now returns opaque data about what was committed, for passing to the ``Repository.pack``. Repositories without atomic commits will still return None. (Robert Collins)
* ``Repository.pack`` now takes an optional ``hint`` parameter which will support doing partial packs for repositories that can do that. (Robert Collins)
* RepositoryFormat has a new attribute 'pack_compresses' which is True when doing a pack operation changes the compression of content in the repository. (Robert Collins)
* ``StreamSink`` and ``InterDifferingSerialiser`` will call ``Repository.pack`` with the hint returned by ``Repository.commit_write_group`` if the formats were different and the repository can increase compression by doing a pack operation. (Robert Collins, #376748)