External Compatibility Breaks
*****************************
None.
New Features
************
* Provides a ``po_merge`` plugin to automatically merge ``.po`` files with
``msgmerge``. See ``bzr help po_merge`` for details.
(Vincent Ladeuil, #884270)
Improvements
************
* ``bzr branch --stacked`` now only makes a single connection to the remote
server rather than three. (Jelmer Vernooij, #444293)
* ``bzr export --uncommitted`` will export the uncommitted tree.
(Jelmer Vernooij, #555613)
* ``bzr rmbranch`` can now remove colocated branches.
(Jelmer Vernooij, #831464)
* ``bzr status`` no longer shows shelves if files are specified.
(Francis Devereux)
* ``bzr switch`` now accepts colocated branch names to switch to.
(Jelmer Vernooij, #826814)
* Plugins can now register additional "location aliases".
(Jelmer Vernooij)
* Revision specifiers will now only browse as much history as they
need to, rather than grabbing the whole history unnecessarily in some
cases. (Jelmer Vernooij)
* When using ``bzr switch`` to switch to a sibling of the current
branch, the relative branch name should no longer be url-encoded.
(Jelmer Vernooij)
Bug Fixes
*********
* A new section local option ``basename`` is available to help support some
``bzr-pipeline`` workflows and more generally help mapping local paths to
remote ones. See ``bzr help configuration`` for more details.
(Vincent Ladeuil, #843211)
* Add HPSS call for looking up revision numbers from revision ids on
remote repositories. (Jelmer Vernooij, #640253)
* Add HPSS call for retrieving file contents from remote repositories.
Should improve performance for lightweight checkouts and exports of
from remote repositories. (Jelmer Vernooij, #368717, #762330,
#608640)
* Allow lazy compiled patterns from ``bzrlib.lazy_regex`` to be
pickled. (Jelmer Vernooij, #893149)
* ``bzr info`` no longer shows empty output if only a control
directory is present. (Jelmer Vernooij, #159098)
* Cope with missing revision ids being specified to
``Repository.gather_stats`` HPSS call. (Jelmer Vernooij, #411290)
* Fix test failures on windows related to locations.conf handling.
(Vincent Ladeuil, #892992)
* Fixed parsing of the timestamp given to ``commit --commit-time``. Now
prohibits several invalid strings, reads the correct number of seconds,
and gives a better error message if the time zone offset is not given.
(Matt Giuca, #892657)
* Give meaningful file/line references when reporting deprecation warnings
for _CompatabilityThunkFeature based test features.
(Vincent Ladeuil, #897718)
* Make reporting of mistakes involving unversioned files with non-ascii
filenames work again without 'Unprintable exception' being shown.
(Martin Packman, #898408)
* Provide names for lazily registered hooks.
(Neil Martinsen-Burrell, #894609)
* Raise BadIndexKey exception in btree_index when a key is too large, fixing
an infinite recursion issue. (Shannon Weyrick, #720853)
* Resolve regression from colocated branch path handling, by ensuring that
unreserved characters are unquoted in URLs. (Martin Packman, #842223)
* Split segments from URLs for colocated branches without assuming the
combined form is a valid. (Martin Packman, #842233)
* Support looking up revision numbers by revision id in empty branches.
(Jelmer Vernooij, #535031)
* Support verifying signatures on remote repositories.
(Jelmer Vernooij, #889694)
* Teach the bzr client how to reconnect if we get ``ConnectionReset``
while making an RPC request. This doesn't handle all possible network
disconnects, but it should at least handle when the server is asked to
shutdown gracefully. (John Arbash Meinel, #819604)
* When a remote format is unknown, bzr will now print a single-line error
message rather than a backtrace. (Jelmer Vernooij, #687226)
API Changes
***********
* ``BzrDir.open_branch`` and ``BranchFormat.open`` now take an optional
``possible_transports`` argument. (Jelmer Vernooij)
* New method ``Transport.set_segment_parameter``. (Jelmer Vernooij)
* ``Repository.verify_revision`` has been renamed to
``Repository.verify_revision_signature``. (Jelmer Vernooij)
* ``RevisionSpec.wants_revision_history`` now defaults to ``False`` and
is deprecated. The ``revs`` argument of
``RevisionInfo.from_revision_id`` is now deprecated. (Jelmer Vernooij)
* ``Tree.get_file_by_path`` is now deprecated. Use ``Tree.get_file`` instead.
(Jelmer Vernooij, #666897)
* Some global options for use with commands have been removed, construct
an ``Option`` with the name instead. (Martin Packman)
* The unused exception ``HistoryMissing`` has been removed.
(Jelmer Vernooij)
Internals
*********
* Add HPSS call for ``Repository.pack``. (Jelmer Vernooij, #894461)
* ``bzr config`` uses the new configuration implementation.
(Vincent Ladeuil)
* Custom HPSS error handlers can now be installed in the smart server client
using the ``error_translators`` and ``no_context_error_translators``
registries. (Jelmer Vernooij)
* New HPSS calls ``Repository.has_signature_for_revision_id``,
``Repository.make_working_trees``, ``BzrDir.destroy_repository``,
``BzrDir.has_workingtree``, ``Repository.get_physical_lock_status``,
``Branch.get_physical_lock_status``,
``Branch.put_config_file``, ``Branch.break_lock``,
``BzrDir.destroy_branch``, ``Repository.break_lock``,
``VersionedFileRepository.get_serializer_format``,
``Repository.all_revision_ids``, ``Repository.start_write_group``,
``Repository.commit_write_group``, ``Repository.abort_write_group``
``Repository.check_write_group``, ``Repository.iter_revisions``,
``Repository.add_signature_revision_text`` and
``Repository.get_revision_signature_text``.
(Jelmer Vernooij)
* ``RemoteBranch.get_config_stack`` and ``RemoteBzrDir.get_config_stack``
will now use HPSS calls where possible. (Jelmer Vernooij)
* The registry of merge types has been moved to ``merge`` from ``option`` but
``merge.get_merge_type_registry`` remains as an accessor. (Martin Packman)
Testing
*******
* Avoid failures in test_transform when OS error messages are localised.
(Martin Packman, #891582)
* Tests are now subject to a time limit: by default 300s, and 120s when
run from 'make check', controlled by the `selftest.timeout`
configuration option. This is currently not supported on Windows.
(Martin Pool)