bzr 2.1.0rc1
############
:Codename: the 'new' stable
:2.1.0rc1: 2009-01-21
This is the first stable release candidate for Bazaar's 2.1 series. From
this point onwards, the 2.1 series will be considered stable (as the 2.0
series) and only bugfixes are expected to be incorporated. The dozen or so
bugfixes in the 2.0.4 release are also included in this release (along
with more than 15 more bugfixes). Some of the interesting features are
support for per-file merge hooks, ``bzr unshelve --preview``, support
for using ! in ignore files to exclude files from being ignored, a small
memory leak was squashed, and many ``ObjectNotLocked`` errors were fixed.
This looks to be a very good start for a new stable series.
New Features
************
* Add bug information to log output when available.
(Neil Martinsen-Burrell, Guillermo Gonzalez, #251729)
* Added ``merge_file_content`` hook point to ``Merger``, allowing plugins
to register custom merge logic, e.g. to provide smarter merging for
particular files.
* Bazaar now includes the ``news_merge`` plugin. It is disabled by
default, to enable it add a ``news_merge_files`` option to your
configuration. Consult ``bzr help news_merge`` for more information.
(Andrew Bennetts)
* ``bzr branch`` now takes a ``--bind`` option. This lets you
branch and bind all in one command. (Ian Clatworthy)
* ``bzr switch`` now takes a ``--revision`` option, to allow switching to
a specific revision of a branch. (Daniel Watkins, #183559)
* ``bzr unshelve --preview`` can now be used to show how a patch on the
shelf would be applied to the working tree.
(Guilherme Salgado, #308122)
* ``bzr update`` now takes a ``--revision`` argument. This lets you
change the revision of the working tree to any revision in the
ancestry of the current or master branch. (Matthieu Moy, Mark Hammond,
Martin Pool, #45719)
* ``-Dbytes`` can now be used to display the total number of bytes
transferred for the current command. This information is always logged
to ``.bzr.log`` for later inspection. (John Arbash Meinel)
* New ignore patterns. Patterns prefixed with '!' are exceptions to
ignore patterns and take precedence over regular ignores. Such
exceptions are used to specify files that should be versioned which
would otherwise be ignored. Patterns prefixed with '!!' act as regular
ignore patterns, but have highest precedence, even over the '!'
exception patterns. (John Whitley, #428031)
* The ``supress_warnings`` configuration option has been introduced to disable
various warnings (it currently only supports the ``format_deprecation``
warning). The new option can be set in any of the following locations:
``bazaar.conf``, ``locations.conf`` and/or ``branch.conf``.
(Ted Gould, Matthew Fuller, Vincent Ladeuil)
Bug Fixes
*********
* Always show a message if an OS error occurs while trying to run a
user-specified commit message editor.
(Martin Pool, #504842)
* ``bzr diff`` will now use the epoch when it is unable to determine
the timestamp of a file, if the revision it was introduced in is a
ghost. (Jelmer Vernooij, #295611)
* ``bzr switch -b`` can now create branches that are located using directory
services such as ``lp:``, even when the branch name doesn't contain a
'/'. (Neil Martinsen-Burrell, #495263)
* ``bzr unshelve`` has improved messages about what it is doing.
(Neil Martinsen-Burrell, #496917)
* Concurrent autopacking is more resilient to already-renamed pack files.
If we find that a file we are about to obsolete is already obsoleted, we
do not try to rename it, and we leave the file in ``obsolete_packs``.
The code is also fault tolerant if a file goes missing, assuming that
another process already removed the file.
(John Arbash Meinel, Gareth White, #507557)
* Fix "Too many concurrent requests" in reconcile when network connection
fails. (Andrew Bennetts, #503878)
* Fixed a side effect mutation of ``RemoteBzrDirFormat._network_name``
that caused some tests to fail when run in a non-default order.
Probably no user impact. (Martin Pool, #504102)
* Fixed ``ObjectNotLocked`` error in ``bzr cat -rbranch:../foo FILE``.
(Andrew Bennetts, #506274)
* FTP transports support Unicode paths by encoding/decoding them as utf8.
(Vincent Ladeuil, #472161)
* Listen to the SIGWINCH signal to update the terminal width.
(Vincent Ladeuil, #316357)
* Progress bars are now hidden when ``--quiet`` is given.
(Martin Pool, #320035)
* ``SilentUIFactory`` now supports ``make_output_stream`` and discards
whatever is written to it. This un-breaks some plugin tests that
depended on this behaviour.
(Martin Pool, #499757)
* When operations update the working tree, all affected files should end
up with the same mtime. (eg. when versioning a generated file, if you
update the source and the generated file together, the generated file
should appear up-to-date.)
(John Arbash Meinel, Martin <gzlist>, #488724)
Improvements
************
* Added ``add_cleanup`` and ``cleanup_now`` to ``bzrlib.command.Command``.
All the builtin commands now use ``add_cleanup`` rather than
``try``/``finally`` blocks where applicable as it is simpler and more
robust. (Andrew Bennetts)
* All except a small number of storage formats are now hidden, making
the help for numerous commands far more digestible. (Ian Clatworthy)
* Attempts to open a shared repository as a branch (e.g. ``bzr branch
path/to/repo``) will now include "location is a repository" as a hint in
the error message. (Brian de Alwis, Andrew Bennetts, #440952)
* Push will now inform the user when they are trying to push to a foreign
VCS for which roundtripping is not supported, and will suggest them to
use dpush. (Jelmer Vernooij)
* The version of bzr being run is now written to the log file.
(__monty__, #257170)
* Transport network activity indicator is shown more of the time when
Bazaar is doing network IO.
(Martin Pool)
Documentation
*************
* Add documentation on creating merges with more than one parent.
(Neil Martinsen-Burrell, #481526)
* Better explain the --uncommitted option of merge.
(Neil Martinsen-Burrell, #505088)
* Improve discussion of pending merges in the documentation for
``revert``. (Neil Martinsen-Burrell, #505093)
* Improved help for ``bzr send``.
(Martin Pool, Bojan Nikolic)
* There is a System Administrator's Guide in ``doc/en/admin-guide``,
including discussions of installation, relevant plugins, security and
backup. (Neil Martinsen-Burrell)
* The ``conflicts`` help topic has been renamed to ``conflict-types``.
(Ian Clatworthy)
* The User Reference is now presented as a series of topics.
Many of the included topics have link and format tweaks applied.
(Ian Clatworthy)
API Changes
***********
* Added ``cachedproperty`` decorator to ``bzrlib.decorators``.
(Andrew Bennetts)
* Many test features were renamed from ``FooFeature`` to ``foo_feature``
to be consistent with instances being lower case and classes being
CamelCase. For the features that were more likely to be used, we added a
deprecation thunk, but not all. (John Arbash Meinel)
* Merger classes (such as ``Merge3Merger``) now expect a ``this_branch``
parameter in their constructors, and provide ``this_branch`` as an
attribute. (Andrew Bennetts)
* The Branch hooks pre_change_branch_tip no longer masks exceptions raised
by plugins - the original exceptions are now preserved. (Robert Collins)
* The Transport ``Server.tearDown`` method is now renamed to
``stop_server`` and ``setUp`` to ``start_server`` for consistency with
our normal naming pattern, and to avoid confusion with Python's
``TestCase.tearDown``. (Martin Pool)
* ``WorkingTree.update`` implementations must now accept a ``revision``
parameter.
Internals
*********
* Added ``BzrDir.open_branchV3`` smart server request, which can receive
a string of details (such as "location is a repository") as part of a
``nobranch`` response. (Andrew Bennetts, #440952)
* New helper osutils.UnicodeOrBytesToBytesWriter which encodes unicode
objects but passes str objects straight through. This is used for
selftest but may be useful for diff and other operations that generate
mixed output. (Robert Collins)
* New exception ``NoRoundtrippingSupport``, for use by foreign branch
plugins. (Jelmer Vernooij)
Testing
*******
* ``bzrlib.tests.permute_for_extension`` is a helper that simplifies
running all tests in the current module, once against a pure python
implementation, and once against an extension (pyrex/C) implementation.
It can be used to dramatically simplify the implementation of
``load_tests``. (John Arbash Meinel)
* ``bzrlib.tests.TestCase`` now subclasses ``testtools.testcase.TestCase``.
This permits features in testtools such as getUniqueInteger and
getUniqueString to be used. Because of this, testtools version 0.9.2 or
newer is now a dependency to run bzr selftest. Running with versions of
testtools less than 0.9.2 will cause bzr to error while loading the test
suite. (Robert Collins)
* Shell-like tests now support the command "mv" for moving files. The
syntax for ``mv file1 file2``, ``mv dir1 dir2`` and ``mv file dir`` is
supported. (Neil Martinsen-Burrell)
* The test progress bar no longer distinguishes tests that 'errored' from
tests that 'failed' - they're all just failures.
(Martin Pool)