~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

Fix up inter_changes with dirstate both C and python.

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