1
*************************
1
2
What's New in Bazaar 2.2?
2
=========================
4
This document outlines the major improvements in Bazaar 2.2
5
vs Bazaar 2.1. As well as summarizing improvements made to
6
the core product, it highlights enhancements within the broader
7
Bazaar world of potential interest to those upgrading.
11
Bazaar 2.2.0 is currently in development. While less stable than
12
Bazaar 2.1.x, we aim to keep quality at a high level:
14
* Monthly beta releases should be suitable for early adopters of new
17
* Nightly builds are suitable for users interested in assisting
20
If it doubt, please use the latest 2.1 release instead.
3
*************************
5
Bazaar 2.2.0, released on the 6th of August 2010, marks the start of
6
another long-term-stable series. From here, we will only make bugfix
7
releases on the 2.2 series (2.2.1, etc), while 2.3 will become our new
8
development series. The 2.0 and 2.1 series will also continue to get
9
bugfixes. (Currently 2.0 is planned to be supported for another 6 months.)
11
The main changes in 2.2 are: **better local and network performance**,
12
**reduced memory usage**, and several user-interface improvements.
14
Users are encouraged to upgrade from the other stable series. This
15
document outlines the improvements in Bazaar 2.2 vs Bazaar 2.1. As well as
16
summarizing improvements made to the core product, it highlights
17
enhancements within the broader Bazaar world of potential interest to
20
Bazaar 2.2.0 includes all the fixes from 2.1.2 and 2.0.6.
22
Over 120 bugs have been fixed in total. See the
23
:doc:`../release-notes/index` for a full list.
25
Bazaar 2.2.1 includes all the fixes from 2.1.3 and 2.0.6 (that
26
weren't included in 2.2.0).
28
See the :doc:`../release-notes/index` for details.
30
Bazaar 2.2.2 focused on fixes to improve our Ubuntu release workflow (which
31
should also help all other distributions).
33
See the :doc:`../release-notes/index` for details.
35
Bazaar 2.2 is fully compatible both locally and on the network with 2.0
36
and 2.1, and can read and write repositories generated by all previous
43
There are some compatibility changes in this release.
45
* For commandline users we no longer guess user identity for ``bzr
46
commit``: users must specify their identity using ``bzr whoami`` (you
47
don't need to specify your identity for readonly operations).
48
This avoids problems where the previous guessed default caused commits
49
be recorded as coming from, for example ``<sam@localhost>``.
23
51
Improved conflict handling
24
--------------------------
52
**************************
26
54
Tree-shape conflicts can be resolved by providing ``--take-this`` and
27
55
``--take-other`` to the ``bzr resolve`` command. Just marking the conflict
28
56
as resolved is still accessible via the ``--done`` default action.
61
* ``bzr init`` does not recursively scan directory contents anymore
62
leading to faster init for directories with existing content.
63
(Martin [gz], Parth Malwankar, #501307)
65
* Less code is loaded at startup, so there's less overhead on running all
67
(Andrew Bennetts, Martin Pool)
69
* Reduce peak memory by one copy of compressed text.
70
(John Arbash Meinel, #566940)
72
* Avoid repeated locking of local objects in ``diff``, ``missing``, and
73
``pull``, so those options are faster.
79
* Bazaar now reads data from SSH connections more efficiently on platforms
80
that provide the ``socketpair`` function, and when using paramiko.
81
(Andrew Bennetts, #590637)
83
* Index lookups in pack repositories search recently hit pack files
84
first. In repositories with many pack files this can greatly reduce the
85
number of files accessed, the number of bytes read, and the number of
86
read calls. An incremental pull via plain HTTP takes half the time and
87
bytes for a moderately large repository. (Andrew Bennetts)
89
* Index lookups only re-order the indexes when the hit files aren't
90
already first. Reduces the cost of reordering
91
(John Arbash Meinel, #562429)
97
* Added ``bzr remove-branch`` command that can remove a local or remote
98
branch. (Jelmer Vernooij, #276295)
100
* ``bzr export`` now takes an optional argument ``--per-file-timestamps``
101
to set file mtimes to the last timestamp of the last revision in which
102
they were changed rather than the current time. (Jelmer Vernooij)
104
* Tag names can now be determined automatically by ``automatic_tag_name``
105
hooks on ``Branch`` if they are not specified on the command line.
108
* Tree-shape conflicts can be resolved by providing ``--take-this`` and
109
``--take-other`` to the ``bzr resolve`` command. Just marking the conflict
110
as resolved is still accessible via the ``--done`` default action.
113
* The ``--directory`` option is supported for a number of additional
114
commands: added, annotate, bind, cat, cat-revision, clean-tree,
115
conflicts, deleted, export, ignore, ignored, lookup-revision, ls,
116
merge-directive, missing, modified, nick, re-sign, resolve, shelve,
117
switch, unbind, unknowns, unshelve, whoami.
118
(Martin von Gagern, #527878)
120
* ``bzr commit`` accepts ``-p`` (for "patch") as a shorter name for
122
(Parth Malwankar, #571467)
124
* ``bzr ignore`` now supports a ``--default-rules`` option that displays
125
the default ignore rules used by bzr. The flag ``--old-default-rules``
126
is no longer supported by ``ignore``.
127
(Parth Malwankar, #538703)
129
* ``bzr pack`` now supports a ``--clean-obsolete-packs`` option that
130
can save disk space by deleting obsolete pack files created during the
132
(Parth Malwankar, #304320)
134
* New command line option ``--authors`` to ``bzr log`` allows users to
135
select which of the apparent authors and committer should be
136
included in the log. Defaults depend on format. (Martin von Gagern, #513322)
138
* The bash_completion plugin from the bzr-bash-completion project has
139
been merged into the tree. It provides a bash-completion command and
140
replaces the outdated ``contrib/bash/bzr`` script with a version
141
using the plugin. (Martin von Gagern, #560030)
143
* A new transport based on GIO (the gnome i/o library) provides access to
144
samba shares, webdav using gio+smb and gio+dav. It is also possible to
145
use gio for some already existing transport methods as gio+file,
153
* Plugins can be disabled by defining ``BZR_DISABLE_PLUGINS`` as
154
a list of plugin names separated by ':' (';' on windows).
155
(Vincent Ladeuil, #411413)
157
* Plugins can be loaded from arbitrary locations by defining
158
``BZR_PLUGINS_AT`` as a list of ``name@path`` separated by ':' (';' on
160
Windows). This takes precedence over ``BZR_PLUGIN_PATH`` for the
161
specified plugins, and is expected to be most useful for plugin
163
(Vincent Ladeuil, #82693)
166
Apport crash reporting
167
**********************
169
* If the Apport crash-reporting tool is available, bzr crashes are now
170
stored into the ``/var/crash`` apport spool directory, and the user is
171
invited to report them to the developers from there, either
172
automatically or by running ``apport-bug``. No information is sent
173
without specific permission from the user. (Martin Pool, #515052)
31
176
Improved Launchpad integration
32
------------------------------
34
Merges can be proposed on Launchpad with the new **lp-propose-merge**
38
Notable plugin enhancements
39
---------------------------
177
******************************
179
* Merges can be proposed on Launchpad with the new ``lp-propose-merge``
44
183
Better documentation
47
Numerous improvements have been made to the developer documentation.
53
(Details coming soon.)
186
* ``bzr help patterns`` now explains case insensitive patterns and
187
points to Python regular expression documentation.
188
(Parth Malwankar, #594386)
190
* Numerous improvements have been made to the developer documentation.
200
The `grep plugin <https://launchpad.net/bzr-grep>`_ has developed well
201
during the bzr 2.2 cycle. bzr grep can search the versioned files in the
202
working tree, or in one or a series of revisions, or it can search through
203
only the changes in a revision range.
208
`qbzr <https://launchpad.net/qbzr>`_, a cross-platform graphical interface
209
to Bazaar, gained many features and fixes in its 0.19 release, including:
211
* qannotate has new look and feel; with new features: find text and goto
214
* Improved performance of qlog, and treewidget-based dialogs (qcommit,
217
* qpush, qmerge, etc.: when there are uncommitted changes in the working
218
tree, user has the option to commit, or revert.
220
* qcommit: user can update bound branch/checkout if it is not up to date.
222
* Better support of Mac OS X: dialog windows no more start in background.
224
* qlog: Context menu actions for tag and revert will now show a branch
225
menu if more than one branch is open.
227
* qlog: more context menu actions for update, cherry-pick, and reverse
230
* Language of GUI can be set in DEFAULT section of bazaar.conf
231
as ``language = code``. Language codes are the same
232
as for ``LANG`` environment variable.
233
Environment variable ``LANGUAGE`` still preferred over settings
237
Platform-specific changes
238
*************************
243
* There's a new py2exe windows program ``bzrw.exe``, which allows for starting a Bazaar GUI with out have a console open in the background. (Gary van der Merwe, #433781`)
245
* The all-in-one Windows installer will now be built with docstrings stripped
246
from the library zip, reducing the size and slightly improving cold startup
247
time. Bundled plugins are unchanged for the moment, but if adding other new
248
plugins to an all-in-one installation, ensure they are compiled and
249
installed with -O1 or help may not work. (Martin [gz])
251
* Parsing of command lines, for example in ``diff --using``, no longer
252
treats backslash as an escape character on Windows. (Gordon Tyler,
259
* BzrError subclasses no longer support the name "message" to be used
260
as an argument for __init__ or in _fmt format specification as this
261
breaks in some Python versions. errors.LockError.__init__ argument
262
is now named "msg" instead of earlier "message".
263
(Parth Malwankar, #603461)
265
* The old ``bzr selftest --benchmark`` option has been removed.
266
<https://launchpad.net/bzr-usertest> is an actively-maintained
267
macrobenchmark suite.
270
* bzrlib library users now need to call ``__enter__`` and ``__exit__`` on
271
the result of ``bzrlib.initialize``. This change was made when fixing
272
the bad habit recent bzr versions have had of leaving progress bars
273
behind on the screen. That required calling another function before
274
exiting the program, and it made sense to provide a full context
275
manager at the same time. (Robert Collins)
277
* The ``bzr`` front end now requires a ``bzrlib.ui.ui_factory`` which is a
278
context manager in the Python 2.5 and above sense. The bzrlib base class
279
is such a manager, but third party UI factories which do not derive from
280
``bzrlib.ui.UIFactory`` will be incompatible with the command line front
283
* URLs like ``foo:bar/baz`` are now always parsed as a URL with scheme "foo"
284
and path "bar/baz", even if bzr does not recognize "foo" as a known URL
285
scheme. Previously these URLs would be treated as local paths.
56
289
Further information
59
For more detailed information on the changes made, be sure to check
292
For more detailed information on the changes made, see the
60
293
the :doc:`../release-notes/index` for:
62
295
* the interim bzr `milestones <https://launchpad.net/bzr/2.2>`_