~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/release-notes/bzr-2.3.txt

  • Committer: Andrew Bennetts
  • Date: 2010-10-08 08:15:14 UTC
  • mto: This revision was merged to the branch mainline in revision 5498.
  • Revision ID: andrew.bennetts@canonical.com-20101008081514-dviqzrdfwyzsqbz2
Split NEWS into per-release doc/en/release-notes/bzr-*.txt

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
.. toctree::
6
6
   :maxdepth: 1
7
7
 
8
 
bzr 2.3b4
9
 
#########
10
 
 
11
 
:2.3.b4: NOT RELEASED YET
12
 
 
13
 
External Compatibility Breaks
14
 
*****************************
15
 
 
16
 
.. These may require users to change the way they use Bazaar.
17
 
 
18
 
New Features
19
 
************
20
 
 
21
 
.. New commands, options, etc that users may wish to try out.
22
 
 
23
 
Improvements
24
 
************
25
 
 
26
 
.. Improvements to existing commands, especially improved performance 
27
 
   or memory usage, or better results.
28
 
 
29
 
* Bazaar now caches a branch's tags while that branch is read-locked.
30
 
  This removes 1 network roundtrip from most interactions with a remote
31
 
  branch.  (Andrew Bennetts)
32
 
 
33
 
* ``bzr config <option>`` will now display only the value itself so scripts
34
 
  can use it to query the currently active configuration. Displaying several
35
 
  options matching a given regular expression is now controlled via the
36
 
  ``--all`` option.  (Vincent Ladeuil, bug #670251)
37
 
 
38
 
* ``bzr resolve`` now reports the number of conflicts resolved and the
39
 
  number of remaining conflicts. This provides a better feedback about the
40
 
  whole resolution process. (Vincent Ladeuil)
41
 
 
42
 
Bug Fixes
43
 
*********
44
 
 
45
 
.. Fixes for situations where bzr would previously crash or give incorrect
46
 
   or undesirable results.
47
 
 
48
 
* Better message if there is an error while setting ownership of
49
 
  ``.bazaar`` directory. (Parth Malwankar, #657553)
50
 
 
51
 
* ``bzr config`` properly displays list values. (Vincent Ladeuil, #672382)
52
 
 
53
 
* ``bzr config`` will now respect option policies when displaying the value
54
 
  and display the definition sections when appropriate.
55
 
  (Vincent Ladeuil, #671050)
56
 
 
57
 
* Don't create commit message files in the current directory to avoid nasty
58
 
  interactions with emacs (which tries to establish the status of the file
59
 
  during the commit which breaks on windows). (Vincent Ladeuil, #673637)
60
 
 
61
 
* ``bzr resolve --take-other <file>`` will not crash anymore if ``<file>``
62
 
  is involved in a text conflict (but the conflict is still not
63
 
  resolved). (Vincent Ladeuil, #646961)
64
 
 
65
 
* Merge will now correctly locate a lca where there is a criss-cross merge
66
 
  of a new root. (Gary van der Merwe, #588698)
67
 
 
68
 
* Report error if non-ASCII command option given. (Rory Yorke, #140563)
69
 
 
70
 
Documentation
71
 
*************
72
 
 
73
 
.. Improved or updated documentation.
74
 
 
75
 
API Changes
76
 
***********
77
 
 
78
 
.. Changes that may require updates in plugins or other code that uses
79
 
   bzrlib.
80
 
 
81
 
Internals
82
 
*********
83
 
 
84
 
.. Major internal changes, unlikely to be visible to users or plugin 
85
 
   developers, but interesting for bzr developers.
86
 
 
87
 
* ``BranchBuilder.build_snapshot`` now accepts parent_ids == [].
88
 
  This can be used to create a new root in the graph. (Gary van der Merwe)
89
 
 
90
 
* Old repository development formats
91
 
  RepositoryFormatCHK1 and RepositoryFormatCHK2 have been removed, and so
92
 
  have the corresponding metadir format options ``development-rich-root``,
93
 
  ``development6-rich-root``, and ``development7-rich-root``.
94
 
 
95
 
Testing
96
 
*******
97
 
 
98
 
.. Fixes and changes that are only relevant to bzr's test framework and 
99
 
   suite.  This can include new facilities for writing tests, fixes to 
100
 
   spurious test failures and changes to the way things should be tested.
101
 
 
102
 
* Add a null_output_matches_anything keyword argument with default False to
103
 
  bzrlib.tests.script.ScriptRunner.run_script to specify that the command
104
 
  output should not be checked (as opposed to expecting an empty output).
105
 
  (Neil Martinsen-Burrell, #662509)
106
 
 
107
 
* Blank output section in scriptrunner tests no longer match any output.
108
 
  Instead, use '...' as a wildcard if you don't care about the output.
109
 
  (Martin Pool, #637830)
110
 
 
111
 
 
112
 
bzr 2.3b3
113
 
#########
114
 
 
115
 
:2.3b3: 2010-11-05
116
 
 
117
 
External Compatibility Breaks
118
 
*****************************
119
 
 
120
 
(none)
121
 
 
122
 
New Features
123
 
************
124
 
 
125
 
* Add --no-tree option to 'bzr push' and 'bzr init' for creating a
126
 
  new or mirrored branch without working trees.
127
 
  (Matthew Gordon, #506730)
128
 
 
129
 
* ``bzr config`` is a new command that displays the configuration options for
130
 
  a given directory. It accepts a glob to match against multiple options at
131
 
  once. It can also be used to set or delete a configuration option in any
132
 
  configuration file. (Vincent Ladeuil)
133
 
 
134
 
* New shortcut url schemes ``ubuntu:`` and ``debianlp:`` access source
135
 
  branches on Launchpad.  E.g. ``bzr branch ubuntu:foo`` gives you the source
136
 
  branch for project ``foo`` in the current distroseries for Ubuntu while
137
 
  ``bzr branch debianlp:lenny/foo`` gives you the source branch (on Launchpad)
138
 
  for project ``foo`` in Debian Lenny.
139
 
  (Barry Warsaw, #609186)
140
 
 
141
 
* Provide a configuration option "default_format" that controls the
142
 
  default format for new branches created with ``bzr init``.
143
 
  (Neil Martinsen-Burrell, #484101)
144
 
 
145
 
Bug Fixes
146
 
*********
147
 
 
148
 
* Always set PATH in start_bzr.bat on Windows. (Matthäus G. Chajdas, #470264)
149
 
 
150
 
* ``bzr status -r X..Y`` was failing because RevisionTree didn't implement
151
 
  ``get_shelf_manager``. (John Arbash Meinel, #662053)
152
 
 
153
 
* Correctly add directory contents when the name was previously added as a
154
 
  normal file, rather than throwing ``AttributeError: children`` during
155
 
  smart_add. (Martin [gz], #251864)
156
 
 
157
 
* Correctly handle the ``--directory`` option for all code paths of
158
 
  ``resolve`` and ``shelve``, this was previously ignored when paths were
159
 
  provided as parameters. When both are provided, ``--directory`` becomes
160
 
  the base directory for the other paths. (Vincent Ladeuil, #670851)
161
 
 
162
 
* Correctly set the Content-Type  header when http POSTing to comply
163
 
  with stricter web frameworks. (Vincent Ladeuil, #665100)
164
 
 
165
 
* Don't force openssh to use protocol=2, since that is now the default.
166
 
  (Neil Martinsen-Burrell, #561061)
167
 
 
168
 
* Fix ``KeyError: 'port'`` when getting the stored password for an http
169
 
  URL.
170
 
  (Martin Pool, #654684)
171
 
 
172
 
* Make ``bzr tag --quiet`` really quiet. (Neil Martinsen-Burrell, #239523)
173
 
 
174
 
* Missing files (files bzr add'ed and then OS deleted) are now shown in ``bzr
175
 
  status`` output. (Rory Yorke, #134168)
176
 
 
177
 
* ``NotBranchError`` no longer allows errors from calling
178
 
  ``bzrdir.open_repository()`` to propagate.  This is unhelpful at best,
179
 
  and at worst can trigger infinite loops in callers.  (Andrew Bennetts)
180
 
  
181
 
* The ``branch.tags.merge_to(target_branch)`` API used by plugins such as
182
 
  ``bzr-builddeb`` now propagates changes to the master branch of the
183
 
  target branch (if there is one).  This makes it consistent with the
184
 
  other tag APIs.  (Andrew Bennetts, #603395)
185
 
 
186
 
* Windows installers no longer requires the Microsoft vcredist to be
187
 
  installed. (Martin [gz], Gary van der Merwe, #632465)
188
 
 
189
 
Documentation
190
 
*************
191
 
 
192
 
* Add documentation of the ability to edit hunks when shelving.
193
 
  (Neil Martinsen-Burrell, #517660)
194
 
 
195
 
* Be more specific about the meaning of revision ranges for ``bzr diff``.
196
 
  (Neil Martinsen-Burrell, #247282)
197
 
 
198
 
* Document the comment character in the .bzrignore file, including a
199
 
  workaround for ignore patterns that begin with #.
200
 
  (Neil Martinsen-Burrell, #631515)
201
 
 
202
 
API Changes
203
 
***********
204
 
 
205
 
* Add ``bzrlib.pyutils`` module with helper functions for some Python
206
 
  tasks such as resolving a dotted name to a Python object
207
 
  (``get_named_object``).  (Andrew Bennetts)
208
 
 
209
 
* ``bzrlib.tests.ForwardingResult`` no longer exists.  Use
210
 
  ``testtools.ExtendedToOriginalDecorator`` instead.  (Andrew Bennetts)
211
 
 
212
 
* ``known_hooks_key_to_parent_and_attribute`` in ``bzrlib.hooks`` has been
213
 
  deprecated in favour of ``known_hooks.key_to_parent_and_attribute`` in
214
 
  the same module.  (Andrew Bennetts)
215
 
 
216
 
Internals
217
 
*********
218
 
 
219
 
* ``tools/fixed-in.py`` find a bug in NEWS from its number or a regexp
220
 
  matching the news entry and display the corresponding release, date, fix
221
 
  authors and the news entry itself. (Vincent Ladeuil)
222
 
 
223
 
Testing
224
 
*******
225
 
 
226
 
* Blank output section in scriptrunner tests no longer match any output.
227
 
  Instead, use '...' as a wildcard if you don't care about the output.
228
 
  (Martin Pool, #637830)
229
 
 
230
 
* ``bzr test-script script`` is a new command that runs a shell-like script
231
 
  from an the ``script`` file. (Vincent Ladeuil)
232
 
 
233
 
* Fix spurious test failures on babune related to the http pipe cleanup and
234
 
  get rid of some 'bytes left on the HTTP socket' useless log messages.
235
 
  (Vincent Ladeuil, #655557)
236
 
 
237
 
* ``bzrlib.tests.per_workingtree.TestCaseWithWorkingTree.make_branch_builder``
238
 
  respects its ``relpath`` parameter. (Vincent Ladeuil)
239
 
 
240
8
bzr 2.3b2
241
9
#########
242
10
 
243
 
:2.3b2: 2010-10-08
244
 
 
245
 
External Compatibility Breaks
246
 
*****************************
247
 
 
248
 
* The ``bzr tags`` command sorts tag names using a natural sort by
249
 
  default (so tag2 sorts before tag10).  The previous default was
250
 
  strictly "asciibetical".  That behavior is still available as ``bzr tags
251
 
  --sort=alpha``. (Neil Martinsen-Burrell, #640760)
252
 
 
253
 
* ``BzrDir.generate_backup_name`` has been deprecated and replaced by a
254
 
  private method. ``osutils.available_backup_name`` provides an extensible
255
 
  replacement. This allowed the deprecation of
256
 
  ``bzrlib.transform.get_backup_name``,
257
 
  ``bzrlib.transform._get_backup_name`` and
258
 
  ``bzrlib.transform.TreeTransformBase.has_named_child``.
259
 
  (Vincent Ladeuil)
 
11
:2.3.b2: NOT RELEASED YET
 
12
 
 
13
Compatibility Breaks
 
14
********************
260
15
 
261
16
New Features
262
17
************
267
22
* Add ``annotate`` revision specifier, which selects the revision that
268
23
  introduced a specified line of a file.  (Aaron Bentley)
269
24
 
270
 
* Add ``-Dmem_dump`` debug flag, which uses meliae to dump memory to 
271
 
  a file upon an out of memory error.
272
 
  (Karl Bielefeldt, #551391)
273
 
 
274
25
* ``bzr status`` now displays a summary of existing shelves after
275
26
  the other status information. This is done using a ``post_status``
276
27
  hook.
280
31
  Also, bzr will recognize if the 'ssh' comand is a symlink to lsh.
281
32
  (Matthew Gordon, #374700)
282
33
 
283
 
* The ``pull`` and ``update`` commands now take a ``--show-base``
284
 
  option that, in the case of conflicts, shows the base revision text.
285
 
  (Rory Yorke,  #202374)
286
 
 
287
 
Improvements
288
 
************
 
34
Bug Fixes
 
35
*********
289
36
 
290
37
* ``bzr break-lock --force`` breaks the lock without prompting.  (Before
291
38
  using this, make sure the process holding the lock really is dead.)
292
 
  (Martin Pool, #397315)
293
 
 
294
 
* ``bzr remove`` now takes a ``--no-backup`` option for when you don't want it
295
 
  to backup anything, just delete it. This option used to be called ``--force``
296
 
  which is now deprecated.
297
 
  (Marius Kruger, #400554)
298
 
 
299
 
* When using the pycurl client module, Bazaar shows some of the text from
300
 
  http server error messages.
301
 
  (Martin Pool, #656667)
302
 
 
303
 
Bug Fixes
304
 
*********
305
 
 
306
 
* Don't force openssh to use protocol=2, since that is now the default.
307
 
  (Neil Martinsen-Burrell, #561061)
308
 
 
309
 
* Fix signature of RemoteBzrDir.create_workingtree to match that of its
310
 
  superclass.  (Neil Martinsen-Burrell, Martin Pool, #524627)
311
 
 
312
 
* Fix traceback with python-2.7's xmlrpclib
313
 
  (Toshio Kuratomi, #612096)
 
39
  (Martin Pool, #392315)
314
40
 
315
41
* Print junk rather than throwing a UnicodeDecodeError from ``bzr version-info``
316
 
  when using the rio format (with non-ascii information) on a non-utf-8
317
 
  terminal.  (Andrej A Antonov, #518609)
318
 
 
319
 
* Treat all IO, OS, and socket errors consistently when establishing
320
 
  SSH/SFTP connections via a subprocess.  (Andrew Bennetts)
 
42
  when using the rio format (with non-ascii information) on a non-utf-8 terminal.
 
43
  (Andrej A Antonov, #518609)
 
44
 
 
45
* Skip tests that needs a bzr source tree when there isn't one. This is
 
46
  needed to succesfully run the test suite for installed versions.
 
47
  (Vincent Ladeuil, #644855).
 
48
 
 
49
* Skip the tests that requires respecting the chmod bits when running as root.
 
50
  (Vincent Ladeuil, #646133)
321
51
 
322
52
* ``unshelve --preview`` now can show diff in a non-ascii encoding.
323
53
  (Andrej A Antonov, #518916)
324
54
 
325
 
* Deleting a versioned directory can leave orphans: unversioned files that
326
 
  were present don't have a parent anymore. The
327
 
  ``bzr.transform.orphan_policy`` configuration option controls the ``bzr``
328
 
  behaviour: ``conflict`` (the default) leave the orphans in place and
329
 
  create a conflict for the directory, ``move`` create orphans named
330
 
  ``<file>.~#~`` in a ``bzr-orphans`` directory at the root of the working
331
 
  tree.  (Vincent Ladeuil, #323111)
332
 
 
333
55
Improvements
334
56
************
335
57
 
336
58
Documentation
337
59
*************
338
60
 
339
 
* Correct the documentation for setting up the smart server with Apache.
340
 
  (Neil Martinsen-Burrell, #311518)
341
 
 
342
 
* Fix rst typos in bzrlib/help_topics/en/conflict-types.txt.
343
 
  (Vincent Ladeuil, #660943)
344
 
 
345
 
* Provide more detailed help on the Launchpad plugin at "bzr help
346
 
  plugins/launchpad".  (Neil Martinsen-Burrell, #589379)
347
 
 
348
 
* Suggest ``bzr revert`` for restoring locally deleted files in help text
349
 
  for ``bzr update``.  (John C Barstow, #191466)
350
 
 
351
61
API Changes
352
62
***********
353
63
 
354
 
* ``WorkingTree`` methods ``pull``, ``update``, and ``_update_tree``
355
 
  now have an optional argument, ``show_base``, which is by default
356
 
  False.  This is flag is ultimately passed to ``merge.merge_inner``
357
 
  in each case. (Rory Yorke, #202374)
358
 
 
359
64
Internals
360
65
*********
361
66
 
369
74
Testing
370
75
*******
371
76
 
372
 
* Add a new simpler way to generate multiple test variations, by setting
373
 
  the `scenarios` attribute of a test class to a list of scenarios
374
 
  descriptions, then using `load_tests_apply_scenarios`.  (See the testing
375
 
  guide and `bzrlib.tests.scenarios`.) Simplify `test_http` using this.
376
 
  (Martin Pool, #597791)
377
 
 
378
 
* Add ``tests/ssl_certs/ca.crt`` to the required test files list. Test
379
 
  involving the pycurl https test server fail otherwise when running
380
 
  selftest from an installed version. (Vincent Ladeuil, #651706)
381
 
 
382
77
* Fix tests that failed when run under ``LANG=C``.
383
78
  (Andrew Bennetts, #632387)
384
79
 
385
 
* Skip tests that needs a bzr source tree when there isn't one. This is
386
 
  needed to succesfully run the test suite for installed versions.
387
 
  (Vincent Ladeuil, #644855).
388
 
 
389
 
* Skip the tests that requires respecting the chmod bits when running as root.
390
 
  (Vincent Ladeuil, #646133)
391
 
 
392
 
* Suppress the "maximum recursion depth exceeded in __subclasscheck__"
393
 
  warning on stderr emitted during ``test_dict_deepnested`` in
394
 
  ``bzrlib/tests/test__bencode.py``.  (Andrew Bennetts)
395
 
 
396
80
* Use tests.TestCaseInTempDir for tests that requires disk resources.
397
81
  (Vincent Ladeuil, #650001)
398
82
 
418
102
its own.
419
103
 
420
104
 
421
 
External Compatibility Breaks
422
 
*****************************
423
 
 
424
 
(none)
 
105
Compatibility Breaks
 
106
********************
 
107
 
 
108
* BzrError subclasses no longer support the name "message" to be used
 
109
  as an argument for __init__ or in _fmt format specification as this
 
110
  breaks in some Python versions. errors.LockError.__init__ argument
 
111
  is now named "msg" instead of earlier "message".
 
112
  (Parth Malwankar, #603461)
 
113
 
 
114
* Additional merges after an unrelated branch has been merged with its
 
115
  history no longer crash when deleted files are involved.
 
116
  (Vincent Ladeuil, John Arbash Meinel, #375898)
 
117
 
 
118
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
 
119
  previously-unversioned directory within the tree: the directory is
 
120
  marked versioned too.
 
121
  (Martin Pool, #192859)
 
122
 
 
123
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
 
124
  target of the symlink.
 
125
  (Martin Pool, John Arbash Meinel, #128562)
 
126
 
 
127
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
 
128
  permissions as ``.bzr`` directory on a POSIX OS.
 
129
  (Parth Malwankar, #262450)
 
130
 
 
131
* ``bzrlib.transform.TreeTransformBase.final_kind``,
 
132
  ``bzrlib.transform.TreeTransform.tree_kind`` and
 
133
  ``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
 
134
  of raising NoSuchFile.  (Vincent Ladeuil)
 
135
 
 
136
* CommitBuilder now uses the committer instead of _config.username to generate
 
137
  the revision-id.  (Aaron Bentley, #614404)
 
138
 
 
139
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
 
140
  way which should help avoid problems with concurrent writers.
 
141
  (Vincent Ladeuil, #525571)
 
142
 
 
143
* `ControlDirFormat` and  `ControlDir` have been split out of `BzrDirFormat`
 
144
  and `BzrDir`, respectively. `ControlDirFormat`
 
145
  and `ControlDir` should be used as the base classes for new non-.bzr
 
146
  implementations.
 
147
 
 
148
  `BzrDirFormat.register_control_format` has been renamed to
 
149
  `ControlDirFormat.register_format`.
 
150
 
 
151
  `BzrDirFormat.register_server_control_format` has been removed.
 
152
 
 
153
  Probing for control directories is now done by separate objects derived
 
154
  from `bzrlib.controldir.Prober` and registered using
 
155
  `bzrlib.controldir.ControlDirFormat.register_prober` or
 
156
  `bzrlib.controldir.ControlDirFormat.register_server_prober`.
 
157
  `BzrDirFormat.probe_transport` has been moved onto `Prober`.
 
158
 
 
159
  `BzrDirFormat.register_format` has been renamed to
 
160
  `BzrProber.register_bzrdir_format`.
 
161
 
 
162
  `bzrlib.bzrdir.network_format_registry` has been moved to
 
163
  `bzrlib.controldir`.
 
164
 
 
165
  (Jelmer Vernooij)
 
166
 
 
167
* Cope with Microsoft FTP server that returns reply '250 Directory
 
168
  created' when mkdir succeeds.  (Martin Pool, #224373)
 
169
 
 
170
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
 
171
  contains only NUL bytes).  Instead warn the user, and allow ``bzr
 
172
  break-lock`` to remove it.  (Andrew Bennetts, #619872)
 
173
  
 
174
* `decode` parameter to get() method in FtpTransport and GioTransport classes
 
175
  is deprecated. (Alexander Belchenko)
 
176
 
 
177
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
 
178
  longer raised.
 
179
  (Martin Pool)
 
180
 
 
181
* Fix ``AttributeError on parent.children`` when adding a file under a
 
182
  directory that was a symlink in the previous commit.
 
183
  (Martin Pool, #192859)
 
184
 
 
185
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
 
186
  ``_close_ssh_proc`` when using ``bzr+ssh://``.  This was causing
 
187
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
 
188
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
 
189
 
 
190
* Only call ``setlocale`` in the bzr startup script on posix systems. This
 
191
  avoids an issue with the newer windows C runtimes used by Python 2.6 and
 
192
  later which can mangle bytestrings printed to the console.
 
193
  (Martin [gz], #631350)
 
194
 
 
195
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
 
196
  which can result in "missing referenced chk root keys" errors when
 
197
  fetching from repositories with affected revisions.
 
198
  (Andrew Bennetts, #522637)
 
199
 
 
200
* Raise ValueError instead of a string exception.
 
201
  (John Arbash Meinel, #586926)
 
202
 
 
203
* Reduce peak memory by one copy of compressed text.
 
204
  (John Arbash Meinel, #566940)
 
205
 
 
206
* Repositories accessed via a smart server now reject being stacked on a
 
207
  repository in an incompatible format, as is the case when accessing them
 
208
  via other methods.  This was causing fetches from those repositories via
 
209
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
 
210
  (Andrew Bennetts, #562380)
 
211
 
 
212
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
 
213
  error. This error was caused by 2.0 not being updated when upstream
 
214
  python merged the end of run patch, which chose ``stopTestRun`` rather than
 
215
  ``done``. (Robert Collins, #571437)
 
216
 
 
217
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
 
218
  being thrown from ``xml_serializer`` on certain cElementTree setups.
 
219
  (Martin [gz], #254278)
 
220
 
 
221
* The old ``bzr selftest --benchmark`` option has been removed.
 
222
  <https://launchpad.net/bzr-usertest> is an actively-maintained
 
223
  macrobenchmark suite.
 
224
  (Martin Pool)
 
225
 
 
226
* `tree_files` and `internal_tree_files` are now deprecated in favor of
 
227
  `WorkingTree.open_containing_paths`.
 
228
  (Martin Pool)
 
229
 
 
230
* Upgrading or fetching from a non-rich-root repository to a rich-root
 
231
  repository (e.g. from pack-0.92 to 2a) no longer fails with
 
232
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.  This was
 
233
  a regression from Bazaar 2.1.  (Andrew Bennetts, #636930)
 
234
  
 
235
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
236
  directory file handle after the chdir fails. Otherwise when passing many
 
237
  filenames into a command line ``bzr status`` we would leak descriptors.
 
238
  (John Arbash Meinel, #583486)
425
239
 
426
240
New Features
427
241
************
447
261
* New development format ``development8-subtree`` which is similar to the 
448
262
  ``2a`` format and adds subtree support. (Jelmer Vernooij)
449
263
 
450
 
Improvements
451
 
************
452
 
 
453
 
* Allow using both ``--using`` and ``--diff-options``.
 
264
* The ``pull`` and ``update`` commands now take a ``-show-base``
 
265
  option that, in the case of conflicts, shows the base revision text.
 
266
  (Rory Yorke,  #202374)
 
267
 
 
268
Bug Fixes
 
269
*********
 
270
 
 
271
* Fix traceback with python-2.7's xmlrpclib
 
272
  (Toshio Kuratomi, #612096)
 
273
 
 
274
* Allow using both --using and --diff-options. 
454
275
  (Matthäus G. Chajdas, #234708)
455
276
 
456
277
* Allow using non-integer bug ID with generic bug trackers.
457
278
  (Alexandre Garnier, #440472)
458
279
 
459
 
* ``bzr remove`` now just backs up changed files instead of exiting,
460
 
  forcing you to choose to either keep or delete them. Bazaar will now delete
461
 
  the files if they can easily be recovered using revert, otherwise they
462
 
  will be backed up (adding an extention of the form .~#~).
463
 
  (Marius Kruger, #400554)
464
 
 
465
 
* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
466
 
  with many changes by not repeatedly building a list of all file-ids.
467
 
  (Andrew Bennetts)
468
 
 
469
 
* Decrease memory consumption when many chk index pages are loaded. (Such
470
 
  as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
471
 
  read many chk pages because the individual chk map nodes will be spread
472
 
  randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
473
 
  down to 247MB, expect even more significant savings on 64-bit platforms.
474
 
  (John Arbash Meinel)
475
 
 
476
 
* Decrease peak memory during ``bzr send``. The old code was caching all
477
 
  text content and all inventory strings for all revisions before
478
 
  computing the diffs. Now we only cache as long as there is a child that
479
 
  will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
480
 
  256MB peak. (John Arbash Meinel, #614576)
481
 
 
482
 
* ``DirState`` internals use a little bit less memory. For bzr.dev it
483
 
  drops the memory from 1MB down to about 800kB. And replaces a few
484
 
  thousand tuples and sets with StaticTuple.  (John Arbash Meinel)
485
 
 
486
 
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
487
 
  have dropped from 68 bytes to 40, and directory entries from 120 bytes
488
 
  to 48).  (Andrew Bennetts)
489
 
 
490
 
* Reduce peak memory by one copy of compressed text when writing to pack
491
 
  repositories.
492
 
  (John Arbash Meinel, #566940)
493
 
 
494
 
* When building new working trees, default to reading from the repository
495
 
  rather than the source tree unless explicitly requested. (via
496
 
  ``--files-from`` and ``--hardlink`` for ``bzr branch`` and
497
 
  ``bzr checkout``. Generally, 2a format repositories extract
498
 
  content faster than seeking and reading content from another tree,
499
 
  especially in cold-cache situations. (John Arbash Meinel, #607298)
500
 
 
501
 
* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
502
 
  Python will use this directory to store bytecodes.
503
 
  (Andrea Corbellini, #626687)
504
 
 
505
 
Bug Fixes
506
 
*********
507
 
 
508
 
* Additional merges after an unrelated branch has been merged with its
509
 
  history no longer crash when deleted files are involved.
510
 
  (Vincent Ladeuil, John Arbash Meinel, #375898)
511
 
 
512
280
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
513
281
  previously-unversioned directory within the tree: the directory is
514
 
  marked versioned too.
 
282
  marked versioned too.  
515
283
  (Martin Pool, #192859)
516
284
 
517
 
* ``bzr clean-tree`` issues a warning if it is unable to delete a file
518
 
  due to ``errno.EACCES`` instead of exiting with an error on Windows.
519
 
  (Parth Malwankar, #430785)
520
 
 
521
 
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
522
 
  target of the symlink.
523
 
  (Martin Pool, John Arbash Meinel, #128562)
524
 
 
525
285
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
526
286
  ``InvalidPattern`` exception error message now shows faulting
527
287
  regular expression.
528
288
  (Parth Malwankar #300062)
529
289
 
530
 
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
531
 
  permissions as ``.bzr`` directory on a POSIX OS.
532
 
  (Parth Malwankar, #262450)
533
 
 
534
 
* CommitBuilder now uses the committer instead of _config.username to generate
535
 
  the revision-id.  (Aaron Bentley, #614404)
536
 
 
537
 
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
538
 
  way which should help avoid problems with concurrent writers.
539
 
  (Vincent Ladeuil, #525571)
 
290
* ``clean-tree`` issues a warning if it is unable to delete a file
 
291
  due to ``errno.EACCES`` instead of exiting with an error on Windows.
 
292
  (Parth Malwankar, #430785)
540
293
 
541
294
* CommitBuilder now uses the committer instead of _config.username to generate
542
295
  the revision-id.  (Aaron Bentley, #614404)
547
300
* Cope with Microsoft FTP Server and VSFTPd that return reply '250
548
301
  Directory created' when mkdir succeeds.  (Martin Pool, #224373)
549
302
 
550
 
* `decode` parameter to get() method in FtpTransport and GioTransport classes
551
 
  is deprecated. (Alexander Belchenko)
 
303
* Decrease peak memory during ``bzr send``. The old code was caching all
 
304
  text content and all inventory strings for all revisions before
 
305
  computing the diffs. Now we only cache as long as there is a child that
 
306
  will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
 
307
  256MB peak. (John Arbash Meinel, #614576)
552
308
 
553
309
* Don't print internal object name when print an invalid revision spec
554
310
  error.  (Neil Martinsen-Burrell, #598701)
572
328
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
573
329
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
574
330
 
 
331
* Fix signature of RemoteBzrDir.create_workingtree to match that of its
 
332
  superclass.  (Neil Martinsen-Burrell, Martin Pool, #524627)
 
333
 
575
334
* Fix spurious paramiko warning on hardy by ensuring that ``selftest``
576
335
  properly remove its warning filter. (Vincent Ladeuil, #625686)
577
336
 
578
 
* Fix ``AttributeError on parent.children`` when adding a file under a
579
 
  directory that was a symlink in the previous commit.
580
 
  (Martin Pool, #192859)
581
 
 
582
 
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
583
 
  ``_close_ssh_proc`` when using ``bzr+ssh://``.  This was causing
584
 
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
585
 
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
586
 
 
587
 
* Fix a problem in bzr's ``Makefile`` that meant syntax errors in some
588
 
  parts of bzr's source code could cause ``make check-nodocs`` to
589
 
  incorrectly return an exit code of 0.
590
 
  (Vincent Ladeuil, #626667)
591
 
 
592
337
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
593
338
  with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
594
339
 
604
349
* `PathNotChild` should not give a traceback.
605
350
  (Martin Pool, #98735)
606
351
 
 
352
* ``PQM`` will no longer ignore syntax errors in submissions.
 
353
  (Vincent Ladeuil, #626667)
 
354
 
607
355
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
608
356
  which can result in "missing referenced chk root keys" errors when
609
357
  fetching from repositories with affected revisions.
610
358
  (Andrew Bennetts, #522637)
611
359
 
612
 
* Raise ValueError instead of a string exception.
613
 
  (John Arbash Meinel, #586926)
614
 
 
615
 
* Repositories accessed via a smart server now reject being stacked on a
616
 
  repository in an incompatible format, as is the case when accessing them
617
 
  via other methods.  This was causing fetches from those repositories via
618
 
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
619
 
  (Andrew Bennetts, #562380)
620
 
 
621
 
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
622
 
  error. This error was caused by 2.0 not being updated when upstream
623
 
  python merged the end of run patch, which chose ``stopTestRun`` rather than
624
 
  ``done``. (Robert Collins, #571437)
625
 
 
626
 
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
627
 
  being thrown from ``xml_serializer`` on certain cElementTree setups.
628
 
  (Martin [gz], #254278)
629
 
 
630
360
* strace test-helper tests cope with the new Ubuntu policy of not allowing
631
361
  users to attach to their own processes by default.
632
362
  (Martin Pool, #626679)
635
365
  be available from ``bzrlib.tests.*``. They used to be, but were
636
366
  accidentally removed. (John Arbash Meinel, #627438)
637
367
 
 
368
* Treat all IO, OS, and socket errors consistently when establishing
 
369
  SSH/SFTP connections via a subprocess.  (Andrew Bennetts)
 
370
 
638
371
* ``Transport.stat`` on a symlink, including a transport pointing directly
639
372
  to a symlink, now returns information about the symlink.
640
373
  (Martin Pool)
641
374
 
642
375
* Upgrading or fetching from a non-rich-root repository to a rich-root
643
376
  repository (e.g. from pack-0.92 to 2a) no longer fails with
644
 
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.  This was
645
 
  a regression from Bazaar 2.1.  (Andrew Bennetts, #636930)
 
377
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.
 
378
  (Andrew Bennetts, #636930)
646
379
  
 
380
* Wait for the SSH server to actually finish, rather than just waiting for
 
381
  it to negotiate the key exchange. (John Arbash Meinel, #626876)
 
382
 
 
383
Improvements
 
384
************
 
385
 
 
386
* ``bzr remove`` now just backs up changed files instead of exiting,
 
387
  forcing you to choose to either keep or delete them. Bazaar will now delete
 
388
  the files if they can easily be recovered using revert, otherwise they
 
389
  will be backed up (adding an extention of the form .~#~).
 
390
  (Marius Kruger, #400554)
 
391
 
 
392
* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
 
393
  with many changes by not repeatedly building a list of all file-ids.
 
394
  (Andrew Bennetts)
 
395
 
 
396
* Decrease memory consumption when many chk index pages are loaded. (Such
 
397
  as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
 
398
  read many chk pages because the individual chk map nodes will be spread
 
399
  randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
 
400
  down to 247MB, expect even more significant savings on 64-bit platforms.
 
401
  (John Arbash Meinel)
 
402
 
 
403
* ``DirState`` internals use a little bit less memory. For bzr.dev it
 
404
  drops the memory from 1MB down to about 800kB. And replaces a few
 
405
  thousand tuples and sets with StaticTuple.  (John Arbash Meinel)
 
406
 
 
407
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
 
408
  have dropped from 68 bytes to 40, and directory entries from 120 bytes
 
409
  to 48).  (Andrew Bennetts)
 
410
 
 
411
* When building new working trees, default to reading from the repository
 
412
  rather than the source tree unless explicitly requested. (via
 
413
  ``--files-from`` and ``--hardlink`` for ``bzr branch`` and
 
414
  ``bzr checkout``. Generally, 2a format repositories extract
 
415
  content faster than seeking and reading content from another tree,
 
416
  especially in cold-cache situations. (John Arbash Meinel, #607298)
 
417
 
 
418
* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
 
419
  Python will use this directory to store bytecodes.
 
420
  (Andrea Corbellini, #626687)
 
421
 
647
422
Documentation
648
423
*************
649
424
 
659
434
  the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
660
435
  (John Arbash Meinel, #617503)
661
436
 
 
437
* Suggest ``bzr revert`` for restoring locally deleted files in help text
 
438
  for ``bzr update``.  (John C Barstow, #191466)
 
439
 
662
440
API Changes
663
441
***********
664
442
 
665
 
* When passing a file to ``UTF8DirReader`` make sure to close the current
666
 
  directory file handle after the chdir fails. Otherwise when passing many
667
 
  filenames into a command line ``bzr status`` we would leak descriptors.
668
 
  (John Arbash Meinel, #583486)
669
 
 
670
 
* `ControlDirFormat` and  `ControlDir` have been split out of `BzrDirFormat`
671
 
  and `BzrDir`, respectively. `ControlDirFormat`
672
 
  and `ControlDir` should be used as the base classes for new non-.bzr
673
 
  implementations.
674
 
 
675
 
  `BzrDirFormat.register_control_format` has been renamed to
676
 
  `ControlDirFormat.register_format`.
677
 
 
678
 
  `BzrDirFormat.register_server_control_format` has been removed.
679
 
 
680
 
  Probing for control directories is now done by separate objects derived
681
 
  from `bzrlib.controldir.Prober` and registered using
682
 
  `bzrlib.controldir.ControlDirFormat.register_prober` or
683
 
  `bzrlib.controldir.ControlDirFormat.register_server_prober`.
684
 
  `BzrDirFormat.probe_transport` has been moved onto `Prober`.
685
 
 
686
 
  `BzrDirFormat.register_format` has been renamed to
687
 
  `BzrProber.register_bzrdir_format`.
688
 
 
689
 
  `bzrlib.bzrdir.network_format_registry` has been moved to
690
 
  `bzrlib.controldir`.
691
 
 
692
 
  (Jelmer Vernooij)
693
 
 
694
 
* ``bzrlib.transform.TreeTransformBase.final_kind``,
695
 
  ``bzrlib.transform.TreeTransform.tree_kind`` and
696
 
  ``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
697
 
  of raising NoSuchFile.  (Vincent Ladeuil)
698
 
 
699
 
* BzrError subclasses no longer support the name "message" to be used
700
 
  as an argument for __init__ or in _fmt format specification as this
701
 
  breaks in some Python versions. errors.LockError.__init__ argument
702
 
  is now named "msg" instead of earlier "message".
703
 
  (Parth Malwankar, #603461)
704
 
 
705
443
* Configuration files should now use the ``from_string`` constructor rather
706
444
  than the ``file`` parameter of the ``_get_parser`` method. The later has
707
445
  been deprecated. ``from_string`` also accept a ``save=True`` parameter to
711
449
* Deprecate treating a `PushResult` and `PullResult` as an integer for the
712
450
  relative change in revno.
713
451
  (Martin Pool)
714
 
 
715
 
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
716
 
  longer raised.
717
 
  (Martin Pool)
718
 
 
 
452
  `
719
453
* ``IniBaseConfig`` objects should now use the ``from_string`` constructor
720
454
  the rather than the ``file`` parameter of the ``_get_parser`` method. The
721
455
  later has been deprecated. (Vincent Ladeuil)
736
470
  constructor has been deprecated, use the ``file_name`` parameter instead.
737
471
  (Vincent Ladeuil)
738
472
 
739
 
* `tree_files` and `internal_tree_files` are now deprecated in favor of
740
 
  `WorkingTree.open_containing_paths`.
741
 
  (Martin Pool)
 
473
* ``WorkingTree`` methods ``pull``, ``update``, and ``_update_tree``
 
474
  now have an optional argument, ``show_base``, which is by default
 
475
  False.  This is flag is ultimately passed to ``merge.merge_inner``
 
476
  in each case. (Rory Yorke, #202374)
742
477
 
743
478
Internals
744
479
*********
749
484
Testing
750
485
*******
751
486
 
752
 
* Avoid spurious failures in ssh tests: wait for the SSH server to
753
 
  actually finish, rather than just waiting for it to negotiate the key
754
 
  exchange. (John Arbash Meinel, #626876)
755
 
 
756
487
* ``build_tree_contents`` can create symlinks.
757
488
  (Martin Pool, John Arbash Meinel)
758
489
 
769
500
* Rearrange thread leak detection code to eliminate global state and make it
770
501
  possible to extend the reporting. (Martin [gz], #633462)
771
502
 
772
 
* The old ``bzr selftest --benchmark`` option has been removed.
773
 
  <https://launchpad.net/bzr-usertest> is an actively-maintained
774
 
  macrobenchmark suite.
775
 
  (Martin Pool)
 
503
* Suppress the "maximum recursion depth exceeded in __subclasscheck__"
 
504
  warning on stderr emitted during ``test_dict_deepnested`` in
 
505
  ``bzrlib/tests/test__bencode.py``.  (Andrew Bennetts)
776
506
 
777
507
* The test suite now simply holds log files in memory, rather than writing them
778
508
  out to disk and then reading them back in and deleting them.