~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2006-06-10 14:53:51 UTC
  • mto: (1711.7.2 win32)
  • mto: This revision was merged to the branch mainline in revision 1796.
  • Revision ID: john@arbash-meinel.com-20060610145351-9da0c1f8ba8a57e0
the _posix_* routines should use posixpath not os.path, so tests pass on win32

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