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)