~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: 2011-05-11 11:35:28 UTC
  • mto: This revision was merged to the branch mainline in revision 5851.
  • Revision ID: john@arbash-meinel.com-20110511113528-qepibuwxicjrbb2h
Break compatibility with python <2.6.

This includes auditing the code for places where we were doing
explicit 'sys.version' checks and removing them as appropriate.

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