~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-10-15 07:36:59 UTC
  • mfrom: (5462.5.9 split-NEWS)
  • Revision ID: pqm@pqm.ubuntu.com-20101015073659-hes51hpjncxrezuq
(spiv) Split NEWS into per-series release notes,
 now found in doc/en/release-notes (Andrew Bennetts)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
####################
 
2
Bazaar Release Notes
 
3
####################
 
4
 
 
5
.. toctree::
 
6
   :maxdepth: 1
 
7
 
 
8
bzr 2.1.4
 
9
#########
 
10
 
 
11
:2.1.4: NOT RELEASED YET
 
12
 
 
13
Compatibility Breaks
 
14
********************
 
15
 
 
16
New Features
 
17
************
 
18
 
 
19
Bug Fixes
 
20
*********
 
21
 
 
22
* Skip tests that needs a bzr source tree when there isn't one. This is
 
23
  needed to succesfully run the test suite for installed versions.
 
24
  (Vincent Ladeuil, #644855).
 
25
 
 
26
* Skip the tests that requires respecting the chmod bits when running as root.
 
27
  (Vincent Ladeuil, #646133)
 
28
 
 
29
* Using bzr with `lp:` urls behind an http proxy should work.
 
30
  (Robert Collins, #558343)
 
31
 
 
32
Improvements
 
33
************
 
34
 
 
35
Documentation
 
36
*************
 
37
 
 
38
API Changes
 
39
***********
 
40
 
 
41
Internals
 
42
*********
 
43
 
 
44
Testing
 
45
*******
 
46
 
 
47
 
 
48
bzr 2.1.3
 
49
#########
 
50
 
 
51
:Codename: Do run run
 
52
:2.1.3: 2010-09-17
 
53
 
 
54
The third release in our 2.1 series addresses several user-inconvenience bugs
 
55
(and includes the fixes done in 2.0.6).  None are critical, but upgrading is
 
56
recommended for all users on earlier 2.1 releases.
 
57
 
 
58
Bug Fixes
 
59
*********
 
60
 
 
61
* Additional merges after an unrelated branch has been merged with its
 
62
  history no longer crash when deleted files are involved.
 
63
  (Vincent Ladeuil, John Arbash Meinel, #375898)
 
64
 
 
65
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
 
66
  previously-unversioned directory within the tree: the directory is
 
67
  marked versioned too.  
 
68
  (Martin Pool, #192859)
 
69
 
 
70
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
 
71
  target of the symlink.
 
72
  (Martin Pool, John Arbash Meinel, #128562)
 
73
 
 
74
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
 
75
  permissions as ``.bzr`` directory on a POSIX OS.
 
76
  (Parth Malwankar, #262450)
 
77
 
 
78
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
 
79
  way which should help avoid problems with concurrent writers.
 
80
  (Vincent Ladeuil, #525571)
 
81
 
 
82
* Don't traceback trying to unversion children files of an already
 
83
  unversioned directory.  (Vincent Ladeuil, #494221)
 
84
 
 
85
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
 
86
  contains only NUL bytes).  Instead warn the user, and allow ``bzr
 
87
  break-lock`` to remove it.  (Andrew Bennetts, #619872)
 
88
  
 
89
* Fix ``AttributeError on parent.children`` when adding a file under a 
 
90
  directory that was a symlink in the previous commit.
 
91
  (Martin Pool, #192859)
 
92
 
 
93
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
 
94
  which can result in "missing referenced chk root keys" errors when
 
95
  fetching from repositories with affected revisions.
 
96
  (Andrew Bennetts, #522637)
 
97
 
 
98
* Raise ValueError instead of a string exception.
 
99
  (John Arbash Meinel, #586926)
 
100
 
 
101
* Reduce peak memory by one copy of compressed text.
 
102
  (John Arbash Meinel, #566940)
 
103
 
 
104
* Repositories accessed via a smart server now reject being stacked on a
 
105
  repository in an incompatible format, as is the case when accessing them
 
106
  via other methods.  This was causing fetches from those repositories via
 
107
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
 
108
  (Andrew Bennetts, #562380)
 
109
 
 
110
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
 
111
  error. This error was caused by 2.0 not being updated when upstream
 
112
  python merged the end of run patch, which chose ``stopTestRun`` rather than
 
113
  ``done``. (Robert Collins, #571437)
 
114
 
 
115
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
 
116
  being thrown from ``xml_serializer`` on certain cElementTree setups.
 
117
  (Martin [gz], #254278)
 
118
 
 
119
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
120
  directory file handle after the chdir fails. Otherwise when passing many
 
121
  filenames into a command line ``bzr status`` we would leak descriptors.
 
122
  (John Arbash Meinel, #583486)
 
123
 
 
124
Testing
 
125
*******
 
126
 
 
127
* ``build_tree_contents`` can create symlinks.
 
128
  (Martin Pool, John Arbash Meinel)
 
129
 
 
130
 
 
131
bzr 2.1.2
 
132
#########
 
133
 
 
134
:2.1.2: 2010-05-28
 
135
 
 
136
This release fixes two critical networking issues with older servers and
 
137
with interrupted system call errors when pushing or pulling.  We recommend
 
138
upgrading to anyone running a 2.1.x version of bzr.
 
139
 
 
140
Bug Fixes
 
141
*********
 
142
 
 
143
* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
 
144
  support of bzr-externals and scmproj plugins.
 
145
  (Alexander Belchenko, bug #572098)
 
146
 
 
147
* ``bzr switch`` does not die if a ConfigurableFileMerger is used.
 
148
  (Aaron Bentley, #559436)
 
149
 
 
150
* Do not register a SIGWINCH signal handler, instead just poll for the
 
151
  terminal width as needed.  This avoids the "Interrupted System Call"
 
152
  problems that occur on POSIX with all currently released versions of
 
153
  Python.
 
154
  (Andrew Bennetts, #583941)
 
155
 
 
156
* Fixed ``AssertionError`` when accessing smart servers running Bazaar
 
157
  versions before 1.6.
 
158
  (Andrew Bennetts, #528041)
 
159
 
 
160
* Reset ``siginterrupt`` flag to False every time we handle a signal
 
161
  installed with ``set_signal_handler(..., restart_syscall=True)`` (from
 
162
  ``bzrlib.osutils``.  Reduces the likelihood of "Interrupted System Call"
 
163
  errors compared to registering ``signal.signal`` directly.
 
164
  (Andrew Bennetts)
 
165
 
 
166
* Reduce peak memory by one copy of compressed text.
 
167
  (John Arbash Meinel, #566940)
 
168
 
 
169
* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
 
170
  (John Arbash Meinel, #582656)
 
171
 
 
172
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
173
  directory file handle after the chdir fails. Otherwise when passing many
 
174
  filenames into a command line ``bzr status`` we would leak descriptors.
 
175
  (John Arbash Meinel, #583486)
 
176
 
 
177
Internals
 
178
*********
 
179
 
 
180
* ``_remember_remote_is_before`` no longer raises AssertionError when
 
181
  suboptimal network behaviour is noticed; instead it just mutters to the
 
182
  log file (and warns the user if they have set the ``hpss`` debug flag).
 
183
  This was causing unnecessary aborts for performance bugs that are minor
 
184
  at worst.
 
185
  (Andrew Bennetts, #528041)
 
186
 
 
187
 
 
188
bzr 2.1.1
 
189
#########
 
190
 
 
191
:2.1.1: 2010-03-24
 
192
 
 
193
This is a small bugfix release.  Upgrading is recommended for anyone
 
194
running 2.1.0 or earlier.
 
195
 
 
196
Bug Fixes
 
197
*********
 
198
 
 
199
* Allow syscalls to automatically restart when ``TextUIFactory``'s
 
200
  SIGWINCH handler is invoked, avoiding ``EINTR`` errors during blocking
 
201
  IO, which are often poorly handled by Python's libraries and parts of
 
202
  bzrlib.  (Andrew Bennetts, #496813)
 
203
 
 
204
* Avoid ``malloc(0)`` in ``patiencediff``, which is non-portable.
 
205
  (Martin Pool, #331095)
 
206
 
 
207
* Fix plugin packaging on Windows. (Ian Clatworthy, #524162)
 
208
 
 
209
* Fix stub sftp test server to call os.getcwdu().
 
210
  (Vincent Ladeuil, #526221, #526353)
 
211
 
 
212
* Fixed CHM generation by moving the NEWS section template into
 
213
  a separate file. (Ian Clatworthy, #524184)
 
214
 
 
215
* Merge correctly when this_tree is not a WorkingTree.  (Aaron Bentley)
 
216
 
 
217
* Register SIGWINCH handler only when creating a ``TextUIFactory``; avoids
 
218
  problems importing bzrlib from a non-main thread.
 
219
  (Elliot Murphy, #521989)
 
220
 
 
221
* Repositories accessed via a smart server now reject being stacked on a
 
222
  repository in an incompatible format, as is the case when accessing them
 
223
  via other methods.  This was causing fetches from those repositories via
 
224
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
 
225
  (Andrew Bennetts, #562380)
 
226
 
 
227
* Standardize the error handling when creating a new ``StaticTuple``
 
228
  (problems will raise TypeError). (Matt Nordhoff, #457979)
 
229
 
 
230
* Warn if pyrex is too old to compile the new ``SimpleSet`` and
 
231
  ``StaticTuple`` extensions, rather than having the build fail randomly.
 
232
  (John Arbash Meinel, #449776)
 
233
 
 
234
Documentation
 
235
*************
 
236
 
 
237
* Added a link to the Desktop Guide. (Ian Clatworthy)
 
238
 
 
239
* Added What's New in Bazaar 2.1 document. (Ian Clatworthy)
 
240
 
 
241
* Drop Google Analytics from the core docs as they caused problems
 
242
  in the CHM files. (Ian Clatworthy, #502010)
 
243
 
 
244
API Changes
 
245
***********
 
246
 
 
247
* Added ``bzrlib.osutils.set_signal_handler``, a convenience function that
 
248
  can set a signal handler and call ``signal.siginterrupt(signum,
 
249
  False)`` for it, if the platform and Python version supports it.
 
250
  (Andrew Bennetts, #496813)
 
251
 
 
252
 
 
253
bzr 2.1.0
 
254
#########
 
255
 
 
256
:Codename: Strasbourg
 
257
:2.1.0: 2010-02-11
 
258
 
 
259
This release marks our second long-term-stable series. The Bazaar team
 
260
has decided that we will continue to make bugfix-only 2.0.x and 2.1.x
 
261
releases, along with 2.2 development releases. 
 
262
 
 
263
This is a fairly incremental update, focusing on polish and bugfixing.
 
264
There are no changes for supported disk formats. Key updates include
 
265
reduced memory consumption for many operations, a new per-file merge
 
266
hook, ignore patterns can now include '!' to exclude files, globbing
 
267
support for all commands on Windows, and support for addressing home
 
268
directories via ``bzr+ssh://host/~/`` syntax.
 
269
 
 
270
Users are encouraged to upgrade from the 2.0 stable series.
 
271
 
 
272
Bug Fixes
 
273
*********
 
274
 
 
275
* Don't require testtools to use sftp.
 
276
  (Vincent Ladeuil, #516183)
 
277
 
 
278
* Fix "AttributeError in Inter1and2Helper" during fetch.
 
279
  (Martin Pool, #513432)
 
280
 
 
281
* ``bzr update`` performs the two merges in a more logical order and will stop
 
282
  when it encounters conflicts.  
 
283
  (Gerard Krol, #113809)
 
284
 
 
285
* Give a better error message when doing ``bzr bind`` in an already bound
 
286
  branch.  (Neil Martinsen-Burrell, #513063)
 
287
 
 
288
* Ignore ``KeyError`` from ``remove_index`` during ``_abort_write_group``
 
289
  in a pack repository, which can happen harmlessly if the abort occurs during
 
290
  finishing the write group.  Also use ``bzrlib.cleanup`` so that any
 
291
  other errors that occur while aborting the individual packs won't be
 
292
  hidden by secondary failures when removing the corresponding indices.
 
293
  (Andrew Bennetts, #423015)
 
294
 
 
295
* Set the mtime of files exported to a directory by ``bzr export`` all to
 
296
  the same value to avoid confusing ``make`` and other date-based build
 
297
  systems. (Robert Collins, #515631)
 
298
 
 
299
Improvements
 
300
************
 
301
 
 
302
* Fetching into experimental formats will now print a warning. (Jelmer
 
303
  Vernooij)
 
304
 
 
305
API Changes
 
306
***********
 
307
 
 
308
* ``Repository.deserialise_inventory`` has been renamed to 
 
309
  ``Repository._deserialise_inventory`` to indicate it is private.
 
310
  (Jelmer Vernooij)
 
311
 
 
312
* ``Repository.get_inventory_xml`` has been renamed to 
 
313
  ``Repository._get_inventory_xml`` to indicate it is private. 
 
314
  (Jelmer Vernooij)
 
315
 
 
316
* ``Repository.serialise_inventory`` has been renamed to 
 
317
  ``Repository._serialise_inventory`` to indicate it is private.
 
318
 
 
319
* Using the ``bzrlib.chk_map`` module from within multiple threads at the
 
320
  same time was broken due to race conditions with a module level page
 
321
  cache. This shows up as a KeyError in the ``bzrlib.lru_cache`` code with
 
322
  ``bzrlib.chk_map`` in the backtrace, and can be triggered without using
 
323
  the same high level objects such as ``bzrlib.repository.Repository``
 
324
  from different threads. chk_map now uses a thread local cache which may
 
325
  increase memory pressure on processes using threads.
 
326
  (Robert Collins, John Arbash Meinel, #514090)
 
327
 
 
328
* The new ``merge_file_content`` should now be ok with tests to avoid
 
329
  regressions.
 
330
  (Vincent Ladeuil, #515597)
 
331
 
 
332
Internals
 
333
*********
 
334
 
 
335
* Use ``bzrlib.cleanup`` rather than less robust ``try``/``finally``
 
336
  blocks in several places in ``bzrlib.merge``.  This avoids masking prior
 
337
  errors when errors like ``ImmortalPendingDeletion`` occur during cleanup
 
338
  in ``do_merge``.
 
339
  (Andrew Bennetts, #517275)
 
340
 
 
341
API Changes
 
342
***********
 
343
 
 
344
* The ``remove_index`` method of
 
345
  ``bzrlib.repofmt.pack_repo.AggregateIndex`` no longer takes a ``pack``
 
346
  argument.  This argument was always ignored.
 
347
  (Andrew Bennetts, #423015)
 
348
 
 
349
bzr 2.1.0rc2
 
350
############
 
351
 
 
352
:Codename: after the bubbles
 
353
:2.1.0rc2: 2010-01-29
 
354
 
 
355
This is a quick-turn-around to update a small issue with our new per-file
 
356
merge hook. We expect no major changes from this to the final 2.1.0.
 
357
 
 
358
API Changes
 
359
***********
 
360
 
 
361
* The new ``merge_file_content`` hook point has been altered to provide a
 
362
  better API where state for extensions can be stored rather than the
 
363
  too-simple function based approach. This fixes a performance regression
 
364
  where branch configuration would be parsed per-file during merge. As
 
365
  part of this the included news_merger has been refactored into a base
 
366
  helper class ``bzrlib.merge.ConfigurableFileMerger``.
 
367
  (Robert Collins, John Arbash Meinel, #513822)
 
368
 
 
369
 
 
370
bzr 2.1.0rc1
 
371
############
 
372
 
 
373
:Codename: the 'new' stable
 
374
:2.1.0rc1: 2009-01-21
 
375
 
 
376
This is the first stable release candidate for Bazaar's 2.1 series. From
 
377
this point onwards, the 2.1 series will be considered stable (as the 2.0
 
378
series) and only bugfixes are expected to be incorporated. The dozen or so
 
379
bugfixes in the 2.0.4 release are also included in this release (along
 
380
with more than 15 more bugfixes). Some of the interesting features are
 
381
support for per-file merge hooks, ``bzr unshelve --preview``, support
 
382
for using ! in ignore files to exclude files from being ignored, a small
 
383
memory leak was squashed, and many ``ObjectNotLocked`` errors were fixed.
 
384
This looks to be a very good start for a new stable series.
 
385
 
 
386
 
 
387
New Features
 
388
************
 
389
 
 
390
* Add bug information to log output when available.
 
391
  (Neil Martinsen-Burrell, Guillermo Gonzalez, #251729)
 
392
 
 
393
* Added ``merge_file_content`` hook point to ``Merger``, allowing plugins
 
394
  to register custom merge logic, e.g. to provide smarter merging for
 
395
  particular files.
 
396
 
 
397
* Bazaar now includes the ``news_merge`` plugin.  It is disabled by
 
398
  default, to enable it add a ``news_merge_files`` option to your
 
399
  configuration.  Consult ``bzr help news_merge`` for more information.
 
400
  (Andrew Bennetts)
 
401
  
 
402
* ``bzr branch`` now takes a ``--bind`` option. This lets you
 
403
  branch and bind all in one command. (Ian Clatworthy)
 
404
 
 
405
* ``bzr switch`` now takes a ``--revision`` option, to allow switching to
 
406
  a specific revision of a branch. (Daniel Watkins, #183559)
 
407
 
 
408
* ``bzr unshelve --preview`` can now be used to show how a patch on the
 
409
  shelf would be applied to the working tree.
 
410
  (Guilherme Salgado, #308122)
 
411
 
 
412
* ``bzr update`` now takes a ``--revision`` argument. This lets you
 
413
  change the revision of the working tree to any revision in the
 
414
  ancestry of the current or master branch. (Matthieu Moy, Mark Hammond,
 
415
  Martin Pool, #45719)
 
416
 
 
417
* ``-Dbytes`` can now be used to display the total number of bytes
 
418
  transferred for the current command. This information is always logged
 
419
  to ``.bzr.log`` for later inspection. (John Arbash Meinel)
 
420
 
 
421
* New ignore patterns.  Patterns prefixed with '!' are exceptions to 
 
422
  ignore patterns and take precedence over regular ignores.  Such 
 
423
  exceptions are used to specify files that should be versioned which 
 
424
  would otherwise be ignored.  Patterns prefixed with '!!' act as regular 
 
425
  ignore patterns, but have highest precedence, even over the '!' 
 
426
  exception patterns. (John Whitley, #428031)
 
427
 
 
428
* The ``supress_warnings`` configuration option has been introduced to disable
 
429
  various warnings (it currently only supports the ``format_deprecation``
 
430
  warning). The new option can be set in any of the following locations:
 
431
  ``bazaar.conf``, ``locations.conf`` and/or ``branch.conf``.
 
432
  (Ted Gould, Matthew Fuller, Vincent Ladeuil)
 
433
 
 
434
Bug Fixes
 
435
*********
 
436
 
 
437
* Always show a message if an OS error occurs while trying to run a
 
438
  user-specified commit message editor.
 
439
  (Martin Pool, #504842)
 
440
 
 
441
* ``bzr diff`` will now use the epoch when it is unable to determine 
 
442
  the timestamp of a file, if the revision it was introduced in is a
 
443
  ghost. (Jelmer Vernooij, #295611)
 
444
 
 
445
* ``bzr switch -b`` can now create branches that are located using directory
 
446
  services such as ``lp:``, even when the branch name doesn't contain a
 
447
  '/'.  (Neil Martinsen-Burrell, #495263)
 
448
 
 
449
* ``bzr unshelve`` has improved messages about what it is doing.
 
450
  (Neil Martinsen-Burrell, #496917)
 
451
 
 
452
* Concurrent autopacking is more resilient to already-renamed pack files.
 
453
  If we find that a file we are about to obsolete is already obsoleted, we
 
454
  do not try to rename it, and we leave the file in ``obsolete_packs``.
 
455
  The code is also fault tolerant if a file goes missing, assuming that
 
456
  another process already removed the file.
 
457
  (John Arbash Meinel, Gareth White, #507557)
 
458
 
 
459
* Fix "Too many concurrent requests" in reconcile when network connection
 
460
  fails.  (Andrew Bennetts, #503878)
 
461
 
 
462
* Fixed a side effect mutation of ``RemoteBzrDirFormat._network_name``
 
463
  that caused some tests to fail when run in a non-default order.
 
464
  Probably no user impact.  (Martin Pool, #504102)
 
465
 
 
466
* Fixed ``ObjectNotLocked`` error in ``bzr cat -rbranch:../foo FILE``.
 
467
  (Andrew Bennetts, #506274)
 
468
 
 
469
* FTP transports support Unicode paths by encoding/decoding them as utf8.
 
470
  (Vincent Ladeuil, #472161)
 
471
 
 
472
* Listen to the SIGWINCH signal to update the terminal width.
 
473
  (Vincent Ladeuil, #316357)
 
474
 
 
475
* Progress bars are now hidden when ``--quiet`` is given.
 
476
  (Martin Pool, #320035)
 
477
 
 
478
* ``SilentUIFactory`` now supports ``make_output_stream`` and discards
 
479
  whatever is written to it.  This un-breaks some plugin tests that
 
480
  depended on this behaviour.
 
481
  (Martin Pool, #499757)
 
482
 
 
483
* When operations update the working tree, all affected files should end
 
484
  up with the same mtime. (eg. when versioning a generated file, if you
 
485
  update the source and the generated file together, the generated file
 
486
  should appear up-to-date.)
 
487
  (John Arbash Meinel, Martin <gzlist>, #488724)
 
488
 
 
489
Improvements
 
490
************
 
491
 
 
492
* Added ``add_cleanup`` and ``cleanup_now`` to ``bzrlib.command.Command``.
 
493
  All the builtin commands now use ``add_cleanup`` rather than
 
494
  ``try``/``finally`` blocks where applicable as it is simpler and more
 
495
  robust.  (Andrew Bennetts)
 
496
 
 
497
* All except a small number of storage formats are now hidden, making
 
498
  the help for numerous commands far more digestible. (Ian Clatworthy)
 
499
 
 
500
* Attempts to open a shared repository as a branch (e.g. ``bzr branch
 
501
  path/to/repo``) will now include "location is a repository" as a hint in
 
502
  the error message.  (Brian de Alwis, Andrew Bennetts, #440952)
 
503
 
 
504
* Push will now inform the user when they are trying to push to a foreign 
 
505
  VCS for which roundtripping is not supported, and will suggest them to 
 
506
  use dpush. (Jelmer Vernooij)
 
507
 
 
508
* The version of bzr being run is now written to the log file.
 
509
  (__monty__, #257170)
 
510
 
 
511
* Transport network activity indicator is shown more of the time when
 
512
  Bazaar is doing network IO.
 
513
  (Martin Pool)
 
514
 
 
515
Documentation
 
516
*************
 
517
 
 
518
* Add documentation on creating merges with more than one parent.
 
519
  (Neil Martinsen-Burrell, #481526)
 
520
 
 
521
* Better explain the --uncommitted option of merge.
 
522
  (Neil Martinsen-Burrell, #505088)
 
523
 
 
524
* Improve discussion of pending merges in the documentation for
 
525
  ``revert``.  (Neil Martinsen-Burrell, #505093)
 
526
 
 
527
* Improved help for ``bzr send``. 
 
528
  (Martin Pool, Bojan Nikolic)
 
529
 
 
530
* There is a System Administrator's Guide in ``doc/en/admin-guide``,
 
531
  including discussions of installation, relevant plugins, security and 
 
532
  backup. (Neil Martinsen-Burrell)
 
533
 
 
534
* The ``conflicts`` help topic has been renamed to ``conflict-types``.
 
535
  (Ian Clatworthy)
 
536
 
 
537
* The User Reference is now presented as a series of topics.
 
538
  Many of the included topics have link and format tweaks applied.
 
539
  (Ian Clatworthy)
 
540
 
 
541
API Changes
 
542
***********
 
543
 
 
544
* Added ``cachedproperty`` decorator to ``bzrlib.decorators``.
 
545
  (Andrew Bennetts)
 
546
 
 
547
* Many test features were renamed from ``FooFeature`` to ``foo_feature``
 
548
  to be consistent with instances being lower case and classes being
 
549
  CamelCase. For the features that were more likely to be used, we added a
 
550
  deprecation thunk, but not all. (John Arbash Meinel)
 
551
 
 
552
* Merger classes (such as ``Merge3Merger``) now expect a ``this_branch``
 
553
  parameter in their constructors, and provide ``this_branch`` as an
 
554
  attribute. (Andrew Bennetts)
 
555
  
 
556
* The Branch hooks pre_change_branch_tip no longer masks exceptions raised
 
557
  by plugins - the original exceptions are now preserved. (Robert Collins)
 
558
 
 
559
* The Transport ``Server.tearDown`` method is now renamed to
 
560
  ``stop_server`` and ``setUp`` to ``start_server`` for consistency with
 
561
  our normal naming pattern, and to avoid confusion with Python's
 
562
  ``TestCase.tearDown``.  (Martin Pool)
 
563
 
 
564
* ``WorkingTree.update`` implementations must now accept a ``revision``
 
565
  parameter.
 
566
 
 
567
Internals
 
568
*********
 
569
 
 
570
* Added ``BzrDir.open_branchV3`` smart server request, which can receive
 
571
  a string of details (such as "location is a repository") as part of a
 
572
  ``nobranch`` response.  (Andrew Bennetts, #440952)
 
573
  
 
574
* New helper osutils.UnicodeOrBytesToBytesWriter which encodes unicode
 
575
  objects but passes str objects straight through. This is used for
 
576
  selftest but may be useful for diff and other operations that generate
 
577
  mixed output. (Robert Collins)
 
578
 
 
579
* New exception ``NoRoundtrippingSupport``, for use by foreign branch 
 
580
  plugins. (Jelmer Vernooij)
 
581
 
 
582
Testing
 
583
*******
 
584
 
 
585
* ``bzrlib.tests.permute_for_extension`` is a helper that simplifies
 
586
  running all tests in the current module, once against a pure python
 
587
  implementation, and once against an extension (pyrex/C) implementation.
 
588
  It can be used to dramatically simplify the implementation of
 
589
  ``load_tests``.  (John Arbash Meinel)
 
590
 
 
591
* ``bzrlib.tests.TestCase`` now subclasses ``testtools.testcase.TestCase``.
 
592
  This permits features in testtools such as getUniqueInteger and
 
593
  getUniqueString to be used. Because of this, testtools version 0.9.2 or
 
594
  newer is now a dependency to run bzr selftest. Running with versions of
 
595
  testtools less than 0.9.2 will cause bzr to error while loading the test
 
596
  suite. (Robert Collins)
 
597
 
 
598
* Shell-like tests now support the command "mv" for moving files.  The
 
599
  syntax for ``mv file1 file2``, ``mv dir1 dir2`` and ``mv file dir`` is
 
600
  supported.  (Neil Martinsen-Burrell)
 
601
 
 
602
* The test progress bar no longer distinguishes tests that 'errored' from
 
603
  tests that 'failed' - they're all just failures.
 
604
  (Martin Pool)
 
605
 
 
606
 
 
607
bzr 2.1.0b4
 
608
###########
 
609
 
 
610
:Codename: san francisco airport
 
611
:2.1.0b4: 2009-12-14
 
612
 
 
613
The fourth beta release in the 2.1 series brings with it a significant
 
614
number of bugfixes (~20). The test suite is once again (finally) "green"
 
615
on Windows, and should remain that way for future releases. There are a
 
616
few performance related updates (faster upgrade and log), and several UI
 
617
tweaks. There has also been a significant number of tweaks to the runtime
 
618
documentation. 2.1.0b4 include everything from the 2.0.3 release.
 
619
 
 
620
 
 
621
Compatibility Breaks
 
622
********************
 
623
 
 
624
* The BZR_SSH environmental variable may now be set to the path of a secure
 
625
  shell client. If currently set to the value ``ssh`` it will now guess the
 
626
  vendor of the program with that name, to restore the old behaviour that
 
627
  indicated the SSH Corporation client use ``sshcorp`` instead as the magic
 
628
  string. (Martin <gzlist@googlemail.com>, #176292)
 
629
 
 
630
New Features
 
631
************
 
632
 
 
633
* ``bzr commit`` now has a ``--commit-time`` option.
 
634
  (Alexander Sack, #459276)
 
635
 
 
636
* ``-Dhpss`` now increases logging done when run on the bzr server,
 
637
  similarly to how it works on the client. (John Arbash Meinel)
 
638
 
 
639
* New option ``bzr unshelve --keep`` applies the changes and leaves them
 
640
  on the shelf.  (Martin Pool, Oscar Fuentes, #492091)
 
641
 
 
642
* The ``BZR_COLUMNS`` envrionment variable can be set to force bzr to
 
643
  respect a given terminal width. This can be useful when output is
 
644
  redirected or in obscure cases where the default value is not
 
645
  appropriate. Pagers can use it to get a better control of the line
 
646
  lengths. 
 
647
  (Vincent Ladeuil)
 
648
 
 
649
* The new command ``bzr lp-mirror`` will request that Launchpad update its
 
650
  mirror of a local branch. This command will only function if launchpadlib
 
651
  is installed.
 
652
  (Jonathan Lange)
 
653
 
 
654
 
 
655
Bug Fixes
 
656
*********
 
657
 
 
658
* After renaming a file, the dirstate could accidentally reference
 
659
  ``source\\path`` rather than ``source/path`` on Windows. This might be a
 
660
  source of some dirstate-related failures. (John Arbash Meinel)
 
661
 
 
662
* ``bzr commit`` now detects commit messages that looks like file names
 
663
  and issues a warning.
 
664
  (Gioele Barabucci, #73073)
 
665
 
 
666
* ``bzr ignore /`` no longer causes an IndexError. (Gorden Tyler, #456036)
 
667
 
 
668
* ``bzr log -n0 -rN`` should not return revisions beyond its merged revisions.
 
669
  (#325618, #484109, Marius Kruger)
 
670
 
 
671
* ``bzr merge --weave`` and ``--lca`` will now create ``.BASE`` files for
 
672
  files with conflicts (similar to ``--merge3``). The contents of the file
 
673
  is a synthesis of all bases used for the merge.
 
674
  (John Arbash Meinel, #40412)
 
675
 
 
676
* ``bzr mv --quiet`` really is quiet now.  (Gordon Tyler, #271790)
 
677
 
 
678
* ``bzr serve`` is more clear about the risk of supplying --allow-writes.
 
679
  (Robert Collins, #84659)
 
680
 
 
681
* ``bzr serve --quiet`` really is quiet now.  (Gordon Tyler, #252834)
 
682
 
 
683
* Fix bug with redirected URLs over authenticated HTTP.
 
684
  (Glen Mailer, Neil Martinsen-Burrell, Vincent Ladeuil, #395714)
 
685
 
 
686
* Interactive merge doesn't leave branch locks behind.  (Aaron Bentley)
 
687
 
 
688
* Lots of bugfixes for the test suite on Windows. We should once again
 
689
  have a test suite with no failures on Windows. (John Arbash Meinel)
 
690
 
 
691
* ``osutils.terminal_width()`` obeys the BZR_COLUMNS environment
 
692
  variable but returns None if the terminal is not a tty (when output is
 
693
  redirected for example). Also fixes its usage under OSes that doesn't
 
694
  provide termios.TIOCGWINSZ. Make sure the corresponding tests runs on
 
695
  windows too.
 
696
  (Joke de Buhr, Vincent Ladeuil, #353370, #62539)
 
697
  (John Arbash Meinel, Vincent Ladeuil, #492561)
 
698
 
 
699
* Terminate ssh subprocesses when no references to them remain, fixing
 
700
  subprocess and file descriptor leaks.  (Andrew Bennetts, #426662)
 
701
  
 
702
* The ``--hardlink`` option of ``bzr branch`` and ``bzr checkout`` now
 
703
  works for 2a format trees.  Only files unaffected by content filters
 
704
  will be hardlinked.  (Andrew Bennetts, #408193)
 
705
 
 
706
* The new glob expansion on Windows would replace all ``\`` characters
 
707
  with ``/`` even if it there wasn't a glob to expand, the arg was quoted,
 
708
  etc. Now only change slashes if there is something being glob expanded.
 
709
  (John Arbash Meinel, #485771)
 
710
 
 
711
* Use our faster ``KnownGraph.heads()`` functionality when computing the
 
712
  new rich-root heads. This can cut a conversion time in half (mysql from
 
713
  13.5h => 6.2h) (John Arbash Meinel, #487632)
 
714
 
 
715
* When launching a external diff tool via bzr diff --using, temporary files
 
716
  are no longer created, rather, the path to the file in the working tree is
 
717
  passed to the external diff tool. This allows the file to be edited if the
 
718
  diff tool provides for this. (Gary van der Merwe, #490738)
 
719
  
 
720
* The launchpad-open command can now be used from a subdirectory of a
 
721
  branch, not just from the root of the branch. 
 
722
  (Neil Martinsen-Burrell, #489102)
 
723
 
 
724
 
 
725
Improvements
 
726
************
 
727
 
 
728
* ``bzr log`` is now faster. (Ian Clatworthy)
 
729
 
 
730
* ``bzr update`` provides feedback on which branch it is up to date with.
 
731
  (Neil Martinsen-Burrell)
 
732
 
 
733
* ``bzr upgrade`` from pre-2a to 2a can be significantly faster (4x).
 
734
  For details see the xml8 patch and heads() improvements.
 
735
  (John Arbash Meinel)
 
736
 
 
737
* ``bzrlib.urlutils.local_path_from_url`` now accepts
 
738
  'file://localhost/' as well as 'file:///' URLs on POSIX.  (Michael
 
739
  Hudson)
 
740
 
 
741
* The progress bar now shows only a spinner and per-operation counts,
 
742
  not an overall progress bar.  The previous bar was often not correlated
 
743
  with real overall operation progress, either because the operations take
 
744
  nonlinear time, or because at the start of the operation Bazaar couldn't
 
745
  estimate how much work there was to do.  (Martin Pool)
 
746
 
 
747
Documentation
 
748
*************
 
749
 
 
750
* Lots of documentation tweaks for inline help topics and command help
 
751
  information.
 
752
 
 
753
API Changes
 
754
***********
 
755
 
 
756
* ``bzrlib.textui`` (vestigial module) removed.  (Martin Pool)
 
757
 
 
758
* The Launchpad plugin now has a function ``login`` which will log in to
 
759
  Launchpad with launchpadlib, and ``load_branch`` which will return the
 
760
  Launchpad Branch object corresponding to a given Bazaar Branch object.
 
761
  (Jonathan Lange)
 
762
 
 
763
Internals
 
764
*********
 
765
 
 
766
* New test Feature: ``ModuleAvailableFeature``. It is designed to make it
 
767
  easier to handle what tests you want to run based on what modules can be
 
768
  imported. (Rather than lots of custom-implemented features that were
 
769
  basically copy-and-pasted.) (John Arbash Meinel)
 
770
 
 
771
* ``osutils.timer_func()`` can be used to get either ``time.time()`` or
 
772
  ``time.clock()`` when you want to do performance timing.
 
773
  ``time.time()`` is limited to 15ms resolution on Windows, but
 
774
  ``time.clock()`` gives CPU and not wall-clock time on other platforms.
 
775
  (John Arbash Meinel)
 
776
 
 
777
* Several code paths that were calling ``Transport.get().read()`` have
 
778
  been changed to the equalivent ``Transport.get_bytes()``. The main
 
779
  difference is that the latter will explicitly call ``file.close()``,
 
780
  rather than expecting the garbage collector to handle it. This helps
 
781
  with some race conditions on Windows during the test suite and sftp
 
782
  tests. (John Arbash Meinel)
 
783
 
 
784
Testing
 
785
*******
 
786
 
 
787
* TestCaseWithMemoryTransport no longer sets $HOME and $BZR_HOME to
 
788
  unicode strings. (Michael Hudson, #464174)
 
789
 
 
790
 
 
791
bzr 2.1.0b3
 
792
###########
 
793
 
 
794
:Codename: after sprint recovery
 
795
:2.1.0b3: 2009-11-16
 
796
 
 
797
This release was pushed up from its normal release cycle due to a
 
798
regression in python 2.4 compatibility in 2.1.0b2.  Since this regression
 
799
was caught before 2.1.0b2 was officially announced, the full changelog
 
800
includes both 2.1.0b3 and 2.1.0b2 changes.
 
801
 
 
802
Highlights of 2.1.0b3 are: new globbing code for all commands on Windows,
 
803
the test suite now conforms to python's trunk enhanced semantics (skip,
 
804
etc.), and ``bzr info -v`` will now report the correct branch and repo
 
805
formats for Remote objects.
 
806
 
 
807
 
 
808
New Features
 
809
************
 
810
 
 
811
* Users can define a shelve editor to provide shelf functionality at a
 
812
  granularity finer than per-patch-hunk. (Aaron Bentley)
 
813
 
 
814
Bug Fixes
 
815
*********
 
816
 
 
817
* Fix for shell completion and short options.  (Benoît PIERRE)
 
818
 
 
819
* Fix ``bzr --profile-imports`` with Python 2.6.  (Martin Pool)
 
820
 
 
821
* Hooks daughter classes should always call the base constructor.
 
822
  (Alexander Belchenko, Vincent Ladeuil, #389648) 
 
823
 
 
824
* Improve "Binary files differ" hunk handling.  (Aaron Bentley, #436325)
 
825
 
 
826
* On Windows, do glob expansion at the command-line level (as is usually
 
827
  done in bash, etc.) This means that *all* commands get glob expansion
 
828
  (bzr status, bzr add, bzr mv, etc). It uses a custom command line
 
829
  parser, which allows us to know if a given section was quoted. It means
 
830
  you can now do ``bzr ignore "*.py"``.
 
831
  (John Arbash Meinel, #425510, #426410, #194450)
 
832
 
 
833
* Sanitize commit messages that come in from the '-m' flag. We translate
 
834
  '\r\n' => '\n' and a plain '\r' => '\n'. The storage layer doesn't
 
835
  allow those because XML store silently translate it anyway. (The parser
 
836
  auto-translates \r\n => \n in ways that are hard for us to catch.)
 
837
 
 
838
* Show correct branch and repository format descriptions in 
 
839
  ``bzr info -v`` on a smart server location.  (Andrew Bennetts, #196080)
 
840
 
 
841
* The fix for bug #186920 accidentally broke compatibility with python
 
842
  2.4.  (Vincent Ladeuil, #475585)
 
843
 
 
844
* Using ``Repository.get_commit_builder().record_iter_changes()`` now
 
845
  correctly sets ``self.inv_sha1`` to a sha1 string and
 
846
  ``self.new_inventory`` to an Inventory instance after calling
 
847
  ``self.finish_inventory()``. (Previously it accidently set both values
 
848
  as a tuple on ``self.inv_sha1``. This was missed because
 
849
  ``repo.add_revision`` ignores the supplied inventory sha1 and recomputes
 
850
  the sha1 from the repo directly. (John Arbash Meinel)
 
851
 
 
852
* Shelve command refuse to run if there is no real terminal.
 
853
  (Alexander Belchenko)
 
854
 
 
855
* Avoid unnecessarily flushing of trace file; it's now unbuffered at the
 
856
  Python level.  (Martin Pool)
 
857
 
 
858
Documentation
 
859
*************
 
860
 
 
861
* Include Japanese translations for documentation (Inada Naoki)
 
862
 
 
863
* New API ``ui_factory.make_output_stream`` to be used for sending bulk
 
864
  (rather than user-interaction) data to stdout.  This automatically
 
865
  coordinates with progress bars or other terminal activity, and can be
 
866
  overridden by GUIs.
 
867
  (Martin Pool, 493944)
 
868
 
 
869
Internals
 
870
*********
 
871
 
 
872
* Some of the core groupcompress functionality now releases the GIL before
 
873
  operation. Similar to how zlib and bz2 operate without the GIL in the
 
874
  core compression and decompression routines. (John Arbash Meinel)
 
875
 
 
876
Testing
 
877
*******
 
878
 
 
879
* -Dhpssvfs will now trigger on ``RemoteBzrDir._ensure_real``, providing
 
880
  more debugging of VFS access triggers. (Robert Collins)
 
881
 
 
882
* KnownFailure is now signalled to ``ExtendedTestResult`` using the same
 
883
  method that Python 2.7 uses - ``addExpectedFailure``. (Robert Collins)
 
884
 
 
885
* ``--parallel=fork`` is now compatible with --subunit.
 
886
  (Robert Collins, Vincent Ladeuil, #419776)
 
887
 
 
888
* Reporting of failures shows test ids not descriptions and thus shows
 
889
  parameterised tests correctly. (Robert Collins)
 
890
 
 
891
* TestNotApplicable is now handled within the TestCase.run method rather
 
892
  than being looked for within ``ExtendedTestResult.addError``. This
 
893
  provides better handling with other ``TestResult`` objects, degrading to
 
894
  sucess rather than error. (Robert Collins)
 
895
 
 
896
* The private method ``_testConcluded`` on ``ExtendedTestResult`` has been
 
897
  removed - it was empty and unused. (Robert Collins)
 
898
 
 
899
* UnavailableFeature is now handled within the TestCase.run method rather
 
900
  than being looked for within addError. If the Result object does not
 
901
  have an addNotSupported method, addSkip is attempted instead, and
 
902
  failing that addSuccess. (Robert Collins)
 
903
 
 
904
* When a TestResult does not have an addSkip method, skipped tests are now
 
905
  reported as successful tests, rather than as errors. This change is
 
906
  to make it possible to get a clean test run with a less capable
 
907
  TestResult. (Robert Collins)
 
908
 
 
909
 
 
910
 
 
911
bzr 2.1.0b2
 
912
###########
 
913
 
 
914
:Codename: a load off my mind
 
915
:2.1.0b2: 2009-11-02
 
916
 
 
917
This is our second feature-filled release since 2.0, pushing us down the
 
918
path to a 2.1.0. Once again, all bugfixes in 2.0.2 are present in 2.1.0b2.
 
919
 
 
920
Key highlights in this release are: improved handling of
 
921
failures-during-cleanup for commit, fixing a long-standing bug with
 
922
``bzr+http`` and shared repositories, all ``lp:`` urls to be resolved
 
923
behind proxies, and a new StaticTuple datatype, allowing us to reduce
 
924
memory consumption (50%) and garbage collector overhead (40% faster) for
 
925
many operations.
 
926
 
 
927
* A new ``--concurrency`` option has been added as well as an associated
 
928
  BZR_CONCURRENCY environment variable to specify the number of
 
929
  processes that can be run concurrently when running ``bzr selftest``. The
 
930
  command-line option overrides the environment variable if both are
 
931
  specified. If none is specified. the number of processes is obtained
 
932
  from the OS as before.  (Matt Nordhoff, Vincent Ladeuil)
 
933
 
 
934
Bug Fixes
 
935
*********
 
936
 
 
937
* ``bzr+http`` servers no longer give spurious jail break errors when
 
938
  serving branches inside a shared repository.  (Andrew Bennetts, #348308)
 
939
 
 
940
* Errors during commit are handled more robustly so that knock-on errors
 
941
  are less likely to occur, and will not obscure the original error if
 
942
  they do occur.  This fixes some causes of ``TooManyConcurrentRequests``
 
943
  and similar errors.  (Andrew Bennetts, #429747, #243391)
 
944
 
 
945
* Launchpad urls can now be resolved from behind proxies.
 
946
  (Gordon Tyler, Vincent Ladeuil, #186920)
 
947
 
 
948
* Reduce the strictness for StaticTuple, instead add a debug flag
 
949
  ``-Dstatic_tuple`` which will change apis to be strict and raise errors.
 
950
  This way, most users won't see failures, but developers can improve
 
951
  internals. (John Arbash Meinel, #471193)
 
952
 
 
953
* TreeTransform.adjust_path updates the limbo paths of descendants of adjusted
 
954
  files.  (Aaron Bentley)
 
955
 
 
956
* Unicode paths are now handled correctly and consistently by the smart
 
957
  server.  (Andrew Bennetts, Michael Hudson, #458762)
 
958
 
 
959
Improvements
 
960
************
 
961
 
 
962
* When reading index files, we now use a ``StaticTuple`` rather than a
 
963
  plain ``tuple`` object. This generally gives a 20% decrease in peak
 
964
  memory, and can give a performance boost up to 40% on large projects.
 
965
  (John Arbash Meinel)
 
966
 
 
967
* Peak memory under certain operations has been reduced significantly.
 
968
  (eg, 'bzr branch launchpad standalone' is cut in half)
 
969
  (John Arbash Meinel)
 
970
 
 
971
Documentation
 
972
*************
 
973
 
 
974
* Filtered views user documentation upgraded to refer to format 2a
 
975
  instead of pre-2.0 formats. (Ian Clatworthy)
 
976
 
 
977
API Changes
 
978
***********
 
979
 
 
980
* Remove deprecated ``CLIUIFactory``.  (Martin Pool)
 
981
 
 
982
* ``UIFactory`` now has new ``show_error``, ``show_message`` and
 
983
  ``show_warning`` methods, which can be hooked by non-text UIs.  
 
984
  (Martin Pool)
 
985
 
 
986
Internals
 
987
*********
 
988
 
 
989
* Added ``bzrlib._simple_set_pyx``. This is a hybrid between a Set and a
 
990
  Dict (it only holds keys, but you can lookup the object located at a
 
991
  given key). It has significantly reduced memory consumption versus the
 
992
  builtin objects (1/2 the size of Set, 1/3rd the size of Dict). This is
 
993
  used as the interning structure for StaticTuple objects.
 
994
  (John Arbash Meinel)
 
995
 
 
996
* ``bzrlib._static_tuple_c.StaticTuple`` is now available and used by
 
997
  the btree index parser and the chk map parser. This class functions
 
998
  similarly to ``tuple`` objects. However, it can only point to a limited
 
999
  collection of types.  (Currently StaticTuple, str, unicode, None, bool,
 
1000
  int, long, float, but not subclasses).  This allows us to remove it from
 
1001
  the garbage collector (it cannot be in a cycle), it also allows us to
 
1002
  intern the objects. In testing, this can reduce peak memory by 20-40%,
 
1003
  and significantly improve performance by removing objects from being
 
1004
  inspected by the garbage collector.  (John Arbash Meinel)
 
1005
 
 
1006
* ``GroupCompressBlock._ensure_content()`` will now release the
 
1007
  ``zlib.decompressobj()`` when the first request is for all of the
 
1008
  content. (Previously it would only be released if you made a request for
 
1009
  part of the content, and then all of it later.) This turns out to be a
 
1010
  significant memory savings, as a ``zstream`` carries around approx 260kB
 
1011
  of internal state and buffers. (For branching bzr.dev this drops peak
 
1012
  memory from 382MB => 345MB.) (John Arbash Meinel)
 
1013
 
 
1014
* When streaming content between ``2a`` format repositories, we now clear
 
1015
  caches from earlier versioned files. (So 'revisions' is cleared when we
 
1016
  start reading 'inventories', etc.) This can have a significant impact on
 
1017
  peak memory for initial copies (~200MB). (John Arbash Meinel)
 
1018
 
 
1019
 
 
1020
bzr 2.1.0b1
 
1021
###########
 
1022
 
 
1023
:Codename: While the cat is away
 
1024
:2.1.0b1: 2009-10-14
 
1025
 
 
1026
This is the first development release in the new split "stable" and
 
1027
"development" series. As such, the release is a snapshot of bzr.dev
 
1028
without creating a release candidate first. This release includes a
 
1029
fair amount of internal changes, with deprecated code being removed,
 
1030
and several new feature developments. People looking for a stable code
 
1031
base with only bugfixes should focus on the 2.0.1 release. All bugfixes
 
1032
present in 2.0.1 are present in 2.1.0b1.
 
1033
 
 
1034
Highlights include support for ``bzr+ssh://host/~/homedir`` style urls,
 
1035
finer control over the plugin search path via extended BZR_PLUGIN_PATH
 
1036
syntax, visible warnings when extension modules fail to load, and improved
 
1037
error handling during unlocking.
 
1038
 
 
1039
 
 
1040
New Features
 
1041
************
 
1042
 
 
1043
* Bazaar can now send mail through Apple OS X Mail.app. 
 
1044
  (Brian de Alwis)
 
1045
 
 
1046
* ``bzr+ssh`` and ``bzr`` paths can now be relative to home directories
 
1047
  specified in the URL.  Paths starting with a path segment of ``~`` are
 
1048
  relative to the home directory of the user running the server, and paths
 
1049
  starting with ``~user`` are relative to the home directory of the named
 
1050
  user.  For example, for a user "bob" with a home directory of
 
1051
  ``/home/bob``, these URLs are all equivalent:
 
1052
 
 
1053
  * ``bzr+ssh://bob@host/~/repo``
 
1054
  * ``bzr+ssh://bob@host/~bob/repo``
 
1055
  * ``bzr+ssh://bob@host/home/bob/repo``
 
1056
 
 
1057
  If ``bzr serve`` was invoked with a ``--directory`` argument, then no
 
1058
  home directories outside that directory will be accessible via this
 
1059
  method.
 
1060
 
 
1061
  This is a feature of ``bzr serve``, so pre-2.1 clients will
 
1062
  automatically benefit from this feature when ``bzr`` on the server is
 
1063
  upgraded.  (Andrew Bennetts, #109143)
 
1064
 
 
1065
* Extensions can now be compiled if either Cython or Pyrex is available.
 
1066
  Currently Pyrex is preferred, but that may change in the future.
 
1067
  (Arkanes)
 
1068
 
 
1069
* Give more control on BZR_PLUGIN_PATH by providing a way to refer to or
 
1070
  disable the user, site and core plugin directories.
 
1071
  (Vincent Ladeuil, #412930, #316192, #145612)
 
1072
 
 
1073
Bug Fixes
 
1074
*********
 
1075
 
 
1076
* Bazaar's native protocol code now correctly handles EINTR, which most
 
1077
  noticeably occurs if you break in to the debugger while connected to a
 
1078
  bzr+ssh server.  You can now can continue from the debugger (by typing
 
1079
  'c') and the process continues.  However, note that pressing C-\ in the
 
1080
  shell may still kill the SSH process, which is bug 162509, so you must
 
1081
  sent a signal to the bzr process specifically, for example by typing
 
1082
  ``kill -QUIT PID`` in another shell.  (Martin Pool, #341535)
 
1083
 
 
1084
* ``bzr add`` in a tree that has files with ``\r`` or ``\n`` in the
 
1085
  filename will issue a warning and skip over those files.
 
1086
  (Robert Collins, #3918)
 
1087
 
 
1088
* ``bzr dpush`` now aborts if uncommitted changes (including pending merges)
 
1089
  are present in the working tree. The configuration option ``dpush_strict``
 
1090
  can be used to set the default for this behavior.
 
1091
  (Vincent Ladeuil, #438158)
 
1092
 
 
1093
* ``bzr merge`` and ``bzr remove-tree`` now requires --force if pending
 
1094
  merges are present in the working tree.
 
1095
  (Vincent Ladeuil, #426344)
 
1096
 
 
1097
* Clearer message when Bazaar runs out of memory, instead of a ``MemoryError``
 
1098
  traceback.  (Martin Pool, #109115)
 
1099
 
 
1100
* Don't give a warning on Windows when failing to import ``_readdir_pyx``
 
1101
  as it is never built. (John Arbash Meinel, #430645)
 
1102
 
 
1103
* Don't restrict the command name used to run the test suite.
 
1104
  (Vincent Ladeuil, #419950)
 
1105
 
 
1106
* ftp transports were built differently when the kerberos python module was
 
1107
  present leading to obscure failures related to ASCII/BINARY modes.
 
1108
  (Vincent Ladeuil, #443041)
 
1109
 
 
1110
* Network streams now decode adjacent records of the same type into a
 
1111
  single stream, reducing layering churn. (Robert Collins)
 
1112
 
 
1113
* PreviewTree behaves correctly when get_file_mtime is invoked on an unmodified
 
1114
  file. (Aaron Bentley, #251532)
 
1115
 
 
1116
* Registry objects should not use iteritems() when asked to use items().
 
1117
  (Vincent Ladeuil, #430510)
 
1118
 
 
1119
* Weave based repositories couldn't be cloned when committers were using
 
1120
  domains or user ids embedding '.sig'. Now they can.
 
1121
  (Matthew Fuller, Vincent Ladeuil, #430868)
 
1122
 
 
1123
Improvements
 
1124
************
 
1125
 
 
1126
* Revision specifiers can now be given in a more DWIM form, without
 
1127
  needing explicit prefixes for specifiers like tags or revision id's.
 
1128
  See ``bzr help revisionspec`` for full details.  (Matthew Fuller)
 
1129
 
 
1130
* Bazaar gives a warning before exiting, and writes into ``.bzr.log``, if 
 
1131
  compiled extensions can't be loaded.  This typically indicates a
 
1132
  packaging or installation problem.  In this case Bazaar will keep
 
1133
  running using pure-Python versions, but this may be substantially
 
1134
  slower.  The warning can be disabled by setting
 
1135
  ``ignore_missing_extensions = True`` in ``bazaar.conf``.
 
1136
  See also <https://answers.launchpad.net/bzr/+faq/703>.
 
1137
  (Martin Pool, #406113, #430529)
 
1138
 
 
1139
* Secondary errors that occur during Branch.unlock and Repository.unlock
 
1140
  no longer obscure the original error.  These methods now use a new
 
1141
  decorator, ``only_raises``.  This fixes many causes of
 
1142
  ``TooManyConcurrentRequests`` and similar errors.
 
1143
  (Andrew Bennetts, #429747)
 
1144
 
 
1145
Documentation
 
1146
*************
 
1147
 
 
1148
* Describe the new shell-like test feature. (Vincent Ladeuil)
 
1149
 
 
1150
* Help on hooks no longer says 'Not deprecated' for hooks that are
 
1151
  currently supported. (Ian Clatworthy, #422415)
 
1152
 
 
1153
API Changes
 
1154
***********
 
1155
 
 
1156
* ``bzrlib.user_encoding`` has been removed; use
 
1157
  ``bzrlib.osutils.get_user_encoding`` instead.  (Martin Pool)
 
1158
 
 
1159
* ``bzrlib.tests`` now uses ``stopTestRun`` for its ``TestResult``
 
1160
  subclasses - the same as python's unittest module. (Robert Collins)
 
1161
  
 
1162
* ``diff._get_trees_to_diff`` has been renamed to 
 
1163
  ``diff.get_trees_and_branches_to_diff``. It is now a public API, and it 
 
1164
  returns the old and new branches. (Gary van der Merwe)
 
1165
 
 
1166
* ``bzrlib.trace.log_error``, ``error`` and ``info`` have been deprecated.
 
1167
  (Martin Pool)
 
1168
 
 
1169
* ``MutableTree.has_changes()`` does not require a tree parameter anymore. It
 
1170
  now defaults to comparing to the basis tree. It now checks for pending
 
1171
  merges too.  ``Merger.check_basis`` has been deprecated and replaced by the
 
1172
  corresponding has_changes() calls. ``Merge.compare_basis``,
 
1173
  ``Merger.file_revisions`` and ``Merger.ensure_revision_trees`` have also
 
1174
  been deprecated.
 
1175
  (Vincent Ladeuil, #440631)
 
1176
 
 
1177
* ``ProgressTask.note`` is deprecated.
 
1178
  (Martin Pool)
 
1179
 
 
1180
Internals
 
1181
*********
 
1182
 
 
1183
* Added ``-Drelock`` debug flag.  It will ``note`` a message every time a
 
1184
  repository or branch object is unlocked then relocked the same way.
 
1185
  (Andrew Bennetts)
 
1186
  
 
1187
* ``BTreeLeafParser.extract_key`` has been tweaked slightly to reduce
 
1188
  mallocs while parsing the index (approx 3=>1 mallocs per key read).
 
1189
  This results in a 10% speedup while reading an index.
 
1190
  (John Arbash Meinel)
 
1191
 
 
1192
* The ``bzrlib.lsprof`` module has a new class ``BzrProfiler`` which makes
 
1193
  profiling in some situations like callbacks and generators easier.
 
1194
  (Robert Collins)
 
1195
 
 
1196
Testing
 
1197
*******
 
1198
 
 
1199
* Passing ``--lsprof-tests -v`` to bzr selftest will cause lsprof output to
 
1200
  be output for every test. Note that this is very verbose! (Robert Collins)
 
1201
 
 
1202
* Setting ``BZR_TEST_PDB=1`` when running selftest will cause a pdb
 
1203
  post_mortem to be triggered when a test failure occurs. (Robert Collins)
 
1204
 
 
1205
* Shell-like tests can now be written. Code in ``bzrlib/tests/script.py`` ,
 
1206
  documentation in ``developers/testing.txt`` for details.
 
1207
  (Vincent Ladeuil)
 
1208
 
 
1209
* Some tests could end up with the same id, that was dormant for
 
1210
  a long time.
 
1211
  (Vincent Ladeuil, #442980)
 
1212
 
 
1213
* Stop showing the number of tests due to missing features in the test
 
1214
  progress bar.  (Martin Pool)
 
1215
 
 
1216
* Test parameterisation now does a shallow copy, not a deep copy of the test
 
1217
  to be parameterised. This is not expected to break external use of test
 
1218
  parameterisation, and is substantially faster. (Robert Collins)
 
1219
 
 
1220
* Tests that try to open a bzr dir on an arbitrary transport will now
 
1221
  fail unless they have explicitly permitted the transport via
 
1222
  ``self.permit_url``. The standard test factories such as ``self.get_url``
 
1223
  will permit the urls they provide automatically, so only exceptional
 
1224
  tests should need to do this. (Robert Collins)
 
1225
 
 
1226
* The break-in test no longer cares about clean shutdown of the child,
 
1227
  instead it is happy if the debugger starts up. (Robert  Collins)
 
1228
 
 
1229
* The full test suite is expected to pass when the C extensions are not
 
1230
  present. (Vincent Ladeuil, #430749)
 
1231
 
 
1232
 
 
1233
..
 
1234
   vim: tw=74 ft=rst ff=unix
 
1235