~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: 2006-07-12 12:36:57 UTC
  • mfrom: (1732.3.4 bzr.revnoX)
  • Revision ID: pqm@pqm.ubuntu.com-20060712123657-365eeb32b69308bf
(matthieu) revno:x:url revision spec

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