Navigation

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, bzrunshelve--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.

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 bzrhelpnews_merge for more information.
(Andrew Bennetts)

bzrbranch now takes a --bind option. This lets you
branch and bind all in one command. (Ian Clatworthy)

bzrswitch now takes a --revision option, to allow switching to
a specific revision of a branch. (Daniel Watkins, #183559)

bzrunshelve--preview can now be used to show how a patch on the
shelf would be applied to the working tree.
(Guilherme Salgado, #308122)

bzrupdate 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)

Always show a message if an OS error occurs while trying to run a
user-specified commit message editor.
(Martin Pool, #504842)

bzrdiff 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)

bzrswitch-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)

bzrunshelve 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)

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)

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. bzrbranchpath/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)

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.

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)

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 mvfile1file2, mvdir1dir2 and mvfiledir 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)