~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/whats-new/whats-new-in-2.2.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
*************************
2
1
What's New in Bazaar 2.2?
3
 
*************************
4
 
 
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.)
10
 
 
11
 
The main changes in 2.2 are: **better local and network performance**,
12
 
**reduced memory usage**, and several user-interface improvements.
13
 
 
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
18
 
those upgrading.
19
 
 
20
 
Bazaar 2.2.0 includes all the fixes from 2.1.2 and 2.0.6.
21
 
 
22
 
Over 120 bugs have been fixed in total.  See the
23
 
:doc:`../release-notes/index` for a full list.
24
 
 
25
 
Bazaar 2.2.0 is fully compatible both locally and on the network with 2.0
26
 
and 2.1, and can read and write repositories generated by all previous
27
 
versions.
28
 
 
29
 
 
30
 
Behaviour changes
31
 
*****************
32
 
 
33
 
There are some compatibility changes in this release.  
34
 
 
35
 
* For commandline users we no longer guess user identity for ``bzr
36
 
  commit``: users must specify their identity using ``bzr whoami`` (you
37
 
  don't need to specify your identity for readonly operations).
38
 
  This avoids problems where the previous guessed default caused commits
39
 
  be recorded as coming from, for example ``<sam@localhost>``.
 
2
=========================
 
3
 
 
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.
 
8
 
 
9
.. warning::
 
10
 
 
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:
 
13
 
 
14
   * Monthly beta releases should be suitable for early adopters of new
 
15
     features.
 
16
 
 
17
   * Nightly builds are suitable for users interested in assisting
 
18
     with testing.
 
19
 
 
20
   If it doubt, please use the latest 2.1 release instead.
 
21
 
40
22
 
41
23
Improved conflict handling
42
 
**************************
 
24
--------------------------
43
25
 
44
26
Tree-shape conflicts can be resolved by providing ``--take-this`` and
45
27
``--take-other`` to the ``bzr resolve`` command. Just marking the conflict
46
28
as resolved is still accessible via the ``--done`` default action.
47
29
 
48
 
Local performance
49
 
*****************
50
 
 
51
 
* ``bzr init`` does not recursively scan directory contents anymore
52
 
  leading to faster init for directories with existing content.
53
 
  (Martin [gz], Parth Malwankar, #501307)
54
 
 
55
 
* Less code is loaded at startup, so there's less overhead on running all
56
 
  bzr commands.
57
 
  (Andrew Bennetts, Martin Pool)
58
 
 
59
 
* Reduce peak memory by one copy of compressed text.
60
 
  (John Arbash Meinel, #566940)
61
 
 
62
 
* Avoid repeated locking of local objects in ``diff``, ``missing``, and
63
 
  ``pull``, so those options are faster.
64
 
  (Andrew Bennetts)
65
 
 
66
 
Network performance
67
 
*******************
68
 
 
69
 
* Bazaar now reads data from SSH connections more efficiently on platforms
70
 
  that provide the ``socketpair`` function, and when using paramiko.
71
 
  (Andrew Bennetts, #590637)
72
 
 
73
 
* Index lookups in pack repositories search recently hit pack files
74
 
  first.  In repositories with many pack files this can greatly reduce the
75
 
  number of files accessed, the number of bytes read, and the number of
76
 
  read calls.  An incremental pull via plain HTTP takes half the time and
77
 
  bytes for a moderately large repository.  (Andrew Bennetts)
78
 
 
79
 
* Index lookups only re-order the indexes when the hit files aren't
80
 
  already first. Reduces the cost of reordering
81
 
  (John Arbash Meinel, #562429)
82
 
 
83
 
 
84
 
Command improvements
85
 
********************
86
 
 
87
 
* Added ``bzr remove-branch`` command that can remove a local or remote 
88
 
  branch. (Jelmer Vernooij, #276295)
89
 
 
90
 
* ``bzr export`` now takes an optional argument ``--per-file-timestamps``
91
 
  to set file mtimes to the last timestamp of the last revision in which
92
 
  they were changed rather than the current time. (Jelmer Vernooij)
93
 
 
94
 
* Tag names can now be determined automatically by ``automatic_tag_name`` 
95
 
  hooks on ``Branch`` if they are not specified on the command line.
96
 
  (Jelmer Vernooij)
97
 
 
98
 
* Tree-shape conflicts can be resolved by providing ``--take-this`` and
99
 
  ``--take-other`` to the ``bzr resolve`` command. Just marking the conflict
100
 
  as resolved is still accessible via the ``--done`` default action.
101
 
  (Vincent Ladeuil)
102
 
 
103
 
* The ``--directory`` option is supported for a number of additional
104
 
  commands: added, annotate, bind, cat, cat-revision, clean-tree,
105
 
  conflicts, deleted, export, ignore, ignored, lookup-revision, ls,
106
 
  merge-directive, missing, modified, nick, re-sign, resolve, shelve,
107
 
  switch, unbind, unknowns, unshelve, whoami.  
108
 
  (Martin von Gagern, #527878)
109
 
 
110
 
* ``bzr commit`` accepts ``-p`` (for "patch") as a shorter name for
111
 
  ``--show-diff``.
112
 
  (Parth Malwankar, #571467)
113
 
  
114
 
* ``bzr ignore`` now supports a ``--default-rules`` option that displays
115
 
  the default ignore rules used by bzr. The flag ``--old-default-rules``
116
 
  is no longer supported by ``ignore``.
117
 
  (Parth Malwankar, #538703)
118
 
 
119
 
* ``bzr pack`` now supports a ``--clean-obsolete-packs`` option that
120
 
  can save disk space by deleting obsolete pack files created during the
121
 
  pack operation.
122
 
  (Parth Malwankar, #304320)
123
 
 
124
 
* New command line option ``--authors`` to ``bzr log`` allows users to
125
 
  select which of the apparent authors and committer should be
126
 
  included in the log. Defaults depend on format. (Martin von Gagern, #513322)
127
 
 
128
 
* The bash_completion plugin from the bzr-bash-completion project has
129
 
  been merged into the tree. It provides a bash-completion command and
130
 
  replaces the outdated ``contrib/bash/bzr`` script with a version
131
 
  using the plugin. (Martin von Gagern, #560030)
132
 
 
133
 
* A new transport based on GIO (the gnome i/o library) provides access to
134
 
  samba shares, webdav using gio+smb and gio+dav. It is also possible to
135
 
  use gio for some already existing transport methods as gio+file,
136
 
  gio+sftp, gio+ftp. 
137
 
  (Mattias Eriksson)
138
 
 
139
 
 
140
 
Controlling plugins
141
 
*******************
142
 
 
143
 
* Plugins can be disabled by defining ``BZR_DISABLE_PLUGINS`` as
144
 
  a list of plugin names separated by ':' (';' on windows).
145
 
  (Vincent Ladeuil, #411413)
146
 
 
147
 
* Plugins can be loaded from arbitrary locations by defining
148
 
  ``BZR_PLUGINS_AT`` as a list of ``name@path`` separated by ':' (';' on
149
 
  Microsoft
150
 
  Windows). This takes precedence over ``BZR_PLUGIN_PATH`` for the
151
 
  specified plugins, and is expected to be most useful for plugin
152
 
  developers.
153
 
  (Vincent Ladeuil, #82693)
154
 
 
155
 
 
156
 
Apport crash reporting
157
 
**********************
158
 
 
159
 
* If the Apport crash-reporting tool is available, bzr crashes are now
160
 
  stored into the ``/var/crash`` apport spool directory, and the user is
161
 
  invited to report them to the developers from there, either
162
 
  automatically or by running ``apport-bug``.  No information is sent
163
 
  without specific permission from the user.  (Martin Pool, #515052)
164
 
 
165
30
 
166
31
Improved Launchpad integration
167
 
******************************
168
 
 
169
 
* Merges can be proposed on Launchpad with the new ``lp-propose-merge``
170
 
  command.
 
32
------------------------------
 
33
 
 
34
Merges can be proposed on Launchpad with the new **lp-propose-merge**
 
35
command.
 
36
 
 
37
 
 
38
Notable plugin enhancements
 
39
---------------------------
 
40
 
 
41
The grep plugin ...
171
42
 
172
43
 
173
44
Better documentation
174
 
********************
175
 
 
176
 
* ``bzr help patterns`` now explains case insensitive patterns and
177
 
  points to Python regular expression documentation.
178
 
  (Parth Malwankar, #594386)
179
 
 
180
 
* Numerous improvements have been made to the developer documentation.
181
 
 
182
 
  
183
 
Changes to plugins
184
 
******************
185
 
 
186
 
 
187
 
bzr grep
188
 
========
189
 
 
190
 
The `grep plugin <https://launchpad.net/bzr-grep>`_  has developed well
191
 
during the bzr 2.2 cycle.  bzr grep can search the versioned files in the
192
 
working tree, or in one or a series of revisions, or it can search through
193
 
only the changes in a revision range.
194
 
 
195
 
qbzr
196
 
====
197
 
 
198
 
`qbzr <https://launchpad.net/qbzr>`_, a cross-platform graphical interface
199
 
to Bazaar, gained many features and fixes in its 0.19 release, including:
200
 
 
201
 
* qannotate has new look and feel; with new features: find text and goto
202
 
  to line.
203
 
 
204
 
* Improved performance of qlog, and treewidget-based dialogs (qcommit,
205
 
  qadd, qrevert etc.)
206
 
 
207
 
* qpush, qmerge, etc.: when there are uncommitted changes in the working
208
 
  tree, user has the option to commit, or revert.
209
 
 
210
 
* qcommit: user can update bound branch/checkout if it is not up to date.
211
 
 
212
 
* Better support of Mac OS X: dialog windows no more start in background.
213
 
 
214
 
* qlog: Context menu actions for tag and revert will now show a branch
215
 
  menu if more than one branch is open.
216
 
 
217
 
* qlog: more context menu actions for update, cherry-pick, and reverse
218
 
  cherry-pick.
219
 
 
220
 
* Language of GUI can be set in DEFAULT section of bazaar.conf 
221
 
  as ``language = code``. Language codes are the same 
222
 
  as for ``LANG`` environment variable. 
223
 
  Environment variable ``LANGUAGE`` still preferred over settings 
224
 
  in bazaar.conf.
225
 
 
226
 
 
227
 
Platform-specific changes
228
 
*************************
229
 
 
230
 
Microsoft Windows
231
 
=================
232
 
 
233
 
* 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`) 
234
 
 
235
 
* The all-in-one Windows installer will now be built with docstrings stripped
236
 
  from the library zip, reducing the size and slightly improving cold startup
237
 
  time. Bundled plugins are unchanged for the moment, but if adding other new
238
 
  plugins to an all-in-one installation, ensure they are compiled and
239
 
  installed with -O1 or help may not work. (Martin [gz])
240
 
 
241
 
* Parsing of command lines, for example in ``diff --using``, no longer
242
 
  treats backslash as an escape character on Windows.   (Gordon Tyler,
243
 
  #392248)
244
 
 
245
 
 
246
 
API changes
247
 
***********
248
 
 
249
 
* BzrError subclasses no longer support the name "message" to be used
250
 
  as an argument for __init__ or in _fmt format specification as this
251
 
  breaks in some Python versions. errors.LockError.__init__ argument
252
 
  is now named "msg" instead of earlier "message".
253
 
  (Parth Malwankar, #603461)
254
 
 
255
 
* The old ``bzr selftest --benchmark`` option has been removed.
256
 
  <https://launchpad.net/bzr-usertest> is an actively-maintained
257
 
  macrobenchmark suite.
258
 
  (Martin Pool)
259
 
 
260
 
* bzrlib library users now need to call ``__enter__`` and ``__exit__`` on
261
 
  the result of ``bzrlib.initialize``. This change was made when fixing
262
 
  the bad habit recent bzr versions have had of leaving progress bars 
263
 
  behind on the screen. That required calling another function before
264
 
  exiting the program, and it made sense to provide a full context
265
 
  manager at the same time. (Robert Collins)
266
 
 
267
 
* The ``bzr`` front end now requires a ``bzrlib.ui.ui_factory`` which is a
268
 
  context manager in the Python 2.5 and above sense. The bzrlib base class
269
 
  is such a manager, but third party UI factories which do not derive from
270
 
  ``bzrlib.ui.UIFactory`` will be incompatible with the command line front
271
 
  end.
272
 
 
273
 
* URLs like ``foo:bar/baz`` are now always parsed as a URL with scheme "foo"
274
 
  and path "bar/baz", even if bzr does not recognize "foo" as a known URL
275
 
  scheme.  Previously these URLs would be treated as local paths.
276
 
  (Gordon Tyler)
 
45
--------------------
 
46
 
 
47
Numerous improvements have been made to the developer documentation.
 
48
 
 
49
 
 
50
Enhanced GUI clients
 
51
--------------------
 
52
 
 
53
(Details coming soon.)
277
54
 
278
55
 
279
56
Further information
280
 
*******************
 
57
-------------------
281
58
 
282
 
For more detailed information on the changes made, see the
 
59
For more detailed information on the changes made, be sure to check
283
60
the :doc:`../release-notes/index` for:
284
61
 
285
62
* the interim bzr `milestones <https://launchpad.net/bzr/2.2>`_
289
66
 
290
67
* :doc:`whats-new-in-2.1`
291
68
 
292
 
 
293
 
.. vim: ft=rst
 
69
Enjoy,
 
70
The Bazaar Development Team