~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: John Arbash Meinel
  • Date: 2010-11-05 20:54:32 UTC
  • mfrom: (5526 +trunk)
  • mto: This revision was merged to the branch mainline in revision 5527.
  • Revision ID: john@arbash-meinel.com-20101105205432-rmyozu8sthyhmri8
Merge bzr.dev to resolve bzr-2.3.txt (aka NEWS)

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.2.2
 
9
#########
 
10
 
 
11
:2.2.2: NOT RELEASED YET
 
12
 
 
13
Compatibility Breaks
 
14
********************
 
15
 
 
16
New Features
 
17
************
 
18
 
 
19
Bug Fixes
 
20
*********
 
21
 
 
22
* Using bzr with `lp:` urls behind an http proxy should work.
 
23
  (Robert Collins, #558343)
 
24
 
 
25
Improvements
 
26
************
 
27
 
 
28
Documentation
 
29
*************
 
30
 
 
31
API Changes
 
32
***********
 
33
 
 
34
Internals
 
35
*********
 
36
 
 
37
Testing
 
38
*******
 
39
 
 
40
* Add ``tests/ssl_certs/ca.crt`` to the required test files list. Test
 
41
  involving the pycurl https test server fail otherwise when running
 
42
  selftest from an installed version. (Vincent Ladeuil, #651706)
 
43
 
 
44
* Fix tests that failed when run under ``LANG=C``.
 
45
  (Andrew Bennetts, #632387)
 
46
 
 
47
* Skip tests that needs a bzr source tree when there isn't one. This is
 
48
  needed to succesfully run the test suite for installed versions.
 
49
  (Vincent Ladeuil, #644855).
 
50
 
 
51
* Skip the tests that requires respecting the chmod bits when running as
 
52
  root. Including the one that wasn't present in 2.1.
 
53
  (Vincent Ladeuil, #646133)
 
54
 
 
55
 
 
56
bzr 2.2.1
 
57
#########
 
58
 
 
59
:2.2.1: 2010-09-17
 
60
 
 
61
This is a bugfix release which also includes bugfixes from 2.0.6 and
 
62
2.1.3. None are critical, but upgrading is recommended for all users on
 
63
earlier 2.2 releases.
 
64
 
 
65
Bug Fixes
 
66
*********
 
67
 
 
68
* Additional merges after an unrelated branch has been merged with its
 
69
  history no longer crash when deleted files are involved.
 
70
  (Vincent Ladeuil, John Arbash Meinel, #375898)
 
71
 
 
72
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
 
73
  previously-unversioned directory within the tree: the directory is
 
74
  marked versioned too.
 
75
  (Martin Pool, #192859)
 
76
 
 
77
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
 
78
  target of the symlink.
 
79
  (Martin Pool, John Arbash Meinel, #128562)
 
80
 
 
81
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
 
82
  permissions as ``.bzr`` directory on a POSIX OS.
 
83
  (Parth Malwankar, #262450)
 
84
 
 
85
* CommitBuilder now uses the committer instead of _config.username to generate
 
86
  the revision-id.  (Aaron Bentley, #614404)
 
87
 
 
88
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
 
89
  way which should help avoid problems with concurrent writers.
 
90
  (Vincent Ladeuil, #525571)
 
91
 
 
92
* Cope with Microsoft FTP server that returns reply '250 Directory
 
93
  created' when mkdir succeeds.  (Martin Pool, #224373)
 
94
 
 
95
* Don't traceback trying to unversion children files of an already
 
96
  unversioned directory.  (Vincent Ladeuil, #494221)
 
97
 
 
98
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
 
99
  contains only NUL bytes).  Instead warn the user, and allow ``bzr
 
100
  break-lock`` to remove it.  (Andrew Bennetts, #619872)
 
101
  
 
102
* Fix ``AttributeError on parent.children`` when adding a file under a
 
103
  directory that was a symlink in the previous commit.
 
104
  (Martin Pool, #192859)
 
105
 
 
106
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
 
107
  ``_close_ssh_proc`` when using ``bzr+ssh://``.  This was causing
 
108
  connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
 
109
  stderr in some other circumstances.  (Andrew Bennetts, #633745)
 
110
 
 
111
* Only call ``setlocale`` in the bzr startup script on posix systems. This
 
112
  avoids an issue with the newer windows C runtimes used by Python 2.6 and
 
113
  later which can mangle bytestrings printed to the console.
 
114
  (Martin [gz], #631350)
 
115
 
 
116
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
 
117
  which can result in "missing referenced chk root keys" errors when
 
118
  fetching from repositories with affected revisions.
 
119
  (Andrew Bennetts, #522637)
 
120
 
 
121
* Raise ValueError instead of a string exception.
 
122
  (John Arbash Meinel, #586926)
 
123
 
 
124
* Reduce peak memory by one copy of compressed text.
 
125
  (John Arbash Meinel, #566940)
 
126
 
 
127
* Repositories accessed via a smart server now reject being stacked on a
 
128
  repository in an incompatible format, as is the case when accessing them
 
129
  via other methods.  This was causing fetches from those repositories via
 
130
  a smart server (e.g. using ``bzr branch``) to receive invalid data.
 
131
  (Andrew Bennetts, #562380)
 
132
 
 
133
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
 
134
  error. This error was caused by 2.0 not being updated when upstream
 
135
  python merged the end of run patch, which chose ``stopTestRun`` rather than
 
136
  ``done``. (Robert Collins, #571437)
 
137
 
 
138
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
 
139
  being thrown from ``xml_serializer`` on certain cElementTree setups.
 
140
  (Martin [gz], #254278)
 
141
 
 
142
* Upgrading or fetching from a non-rich-root repository to a rich-root
 
143
  repository (e.g. from pack-0.92 to 2a) no longer fails with
 
144
  ``'Inter1and2Helper' object has no attribute 'source_repo'``.  This was
 
145
  a regression from Bazaar 2.1.  (Andrew Bennetts, #636930)
 
146
  
 
147
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
148
  directory file handle after the chdir fails. Otherwise when passing many
 
149
  filenames into a command line ``bzr status`` we would leak descriptors.
 
150
  (John Arbash Meinel, #583486)
 
151
 
 
152
Documentation
 
153
*************
 
154
 
 
155
* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
 
156
  the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
 
157
  (John Arbash Meinel, #617503)
 
158
 
 
159
Internals
 
160
*********
 
161
 
 
162
* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
 
163
  (Andrew Bennetts)
 
164
 
 
165
Testing
 
166
*******
 
167
 
 
168
* ``build_tree_contents`` can create symlinks.
 
169
  (Martin Pool, John Arbash Meinel)
 
170
 
 
171
* Tracebacks from a parameterized test are no longer reported against every
 
172
  parameterization of that test.  This was done by adding a hack to
 
173
  ``bzrlib.tests.clone_test`` so that it no longer causes
 
174
  testtools.TestCase instances to share a details dict.
 
175
  (Andrew Bennetts, #625574)
 
176
 
 
177
bzr 2.2
 
178
#######
 
179
 
 
180
:Codename: La Hulpe
 
181
:2.2: 2010-08-06
 
182
 
 
183
This release marks the start of another long-term-stable series. From
 
184
here, we will only make bugfix releases on the 2.2 series (2.2.1, etc),
 
185
while 2.3 will become our new development series. The 2.0 and 2.1 series
 
186
will also continue to get bugfixes. (Currently 2.0 is planned to be
 
187
supported for another 6 months.)
 
188
 
 
189
This is primarily a bugfix and polish release over the 2.1 series, with
 
190
a large number of bugs fixed (>120), and some performance improvements.
 
191
 
 
192
There are some compatibility changes in this release.  For users of bzrlib
 
193
as a library, we now request that they call ``bzrlib.initialize`` and use
 
194
the returned context manager appropriately. For commandline users we no
 
195
longer guess user identity for ``bzr commit``, users must specify their
 
196
identity using ``bzr whoami`` (you don't need to specify your identity for
 
197
readonly operations).
 
198
 
 
199
Users are encouraged to upgrade from the other stable series.
 
200
 
 
201
Compatibility Breaks
 
202
********************
 
203
 
 
204
* BzrError subclasses no longer support the name "message" to be used
 
205
  as an argument for __init__ or in _fmt format specification as this
 
206
  breaks in some Python versions. errors.LockError.__init__ argument
 
207
  is now named "msg" instead of earlier "message".
 
208
  (Parth Malwankar, #603461)
 
209
 
 
210
* The old ``bzr selftest --benchmark`` option has been removed.
 
211
  <https://launchpad.net/bzr-usertest> is an actively-maintained
 
212
  macrobenchmark suite.
 
213
  (Martin Pool)
 
214
 
 
215
Bug Fixes
 
216
*********
 
217
 
 
218
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
 
219
  ``InvalidPattern`` exception error message now shows faulting
 
220
  regular expression.
 
221
  (Parth Malwankar #300062)
 
222
 
 
223
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
 
224
  way which should help avoid problems with concurrent writers.
 
225
  (Vincent Ladeuil, #525571)
 
226
 
 
227
* Don't traceback trying to unversion children files of an already
 
228
  unversioned directory.  (Vincent Ladeuil, #494221)
 
229
 
 
230
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
 
231
  with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
 
232
 
 
233
* Progress bars prefer to truncate the text message rather than the
 
234
  counters.  The spinner is shown between the network transfer indicator
 
235
  and the progress message.  Progress bars are correctly cleared off when 
 
236
  they finish.  (Martin Pool, #611127)
 
237
 
 
238
* Recursive binding for checkouts is now detected by bzr. A clear error
 
239
  message is shown to the user. (Parth Malwankar, #405192)
 
240
 
 
241
Improvements
 
242
************
 
243
 
 
244
* Add ``bzrlib.merge.MergeIntoMerger``, which can merge part or all of a
 
245
  tree, and works with unrelated branches.  (Andrew Bennetts)
 
246
 
 
247
* Add py2exe windows target ``bzrw.exe``. This allow for starting a Bazaar
 
248
  GUI with out have a console open in the background.
 
249
  (Gary van der Merwe, #433781)
 
250
 
 
251
Documentation
 
252
*************
 
253
 
 
254
* ``bzr help patterns`` now explains case insensitive patterns and
 
255
  points to Python regular expression documentation.
 
256
  (Parth Malwankar, #594386)
 
257
 
 
258
API Changes
 
259
***********
 
260
 
 
261
* Delete ``ProgressTask.note``, which was deprecated in 2.1.
 
262
 
 
263
Testing
 
264
*******
 
265
 
 
266
* Unit test added to ensure that "message" is not uses as a format variable
 
267
  name in BzrError subclasses as this conflicts with some Python versions.
 
268
  (Parth Malwankar, #603461)
 
269
 
 
270
bzr 2.2b4
 
271
#########
 
272
 
 
273
:Codename: Monkey Magic
 
274
:2.2b4: 2010-07-10
 
275
 
 
276
 
 
277
This fourth and final beta in the 2.2 series now stabilizes the internal
 
278
APIs. Plugin authors are recommended to ensure their releases are
 
279
compatible, so that 2.2rc1 can be a true release candidate, containing
 
280
stable and compatible plugin versions. 
 
281
 
 
282
For users of bzrlib as a library, one of the primary changes is to request
 
283
that they call ``bzrlib.initialize`` and use the returned context manager
 
284
appropriately.
 
285
 
 
286
Better interaction with ``bzr-loom`` to make sure branching from a loom
 
287
even over a smart server still yields a local loom. Not to mention lots of
 
288
bugfixes over 2.2b3.
 
289
 
 
290
Compatibility Breaks
 
291
********************
 
292
 
 
293
* bzrlib library users now need to call ``__enter__`` and ``__exit__`` on
 
294
  the result of ``bzrlib.initialize``. This change was made when fixing
 
295
  the bad habit recent bzr versions have had of leaving progress bars 
 
296
  behind on the screen. That required calling another function before
 
297
  exiting the program, and it made sense to provide a full context
 
298
  manager at the same time. (Robert Collins)
 
299
 
 
300
* The ``bzr`` front end now requires a ``bzrlib.ui.ui_factory`` which is a
 
301
  context manager in the Python 2.5 and above sense. The bzrlib base class
 
302
  is such a manager, but third party UI factories which do not derive from
 
303
  ``bzrlib.ui.UIFactory`` will be incompatible with the command line front
 
304
  end.
 
305
 
 
306
* URLs like ``foo:bar/baz`` are now always parsed as a URL with scheme "foo"
 
307
  and path "bar/baz", even if bzr does not recognize "foo" as a known URL
 
308
  scheme.  Previously these URLs would be treated as local paths.
 
309
  (Gordon Tyler)
 
310
 
 
311
 
 
312
New Features
 
313
************
 
314
 
 
315
* Support ``--directory`` option for a number of additional commands:
 
316
  conflicts, merge-directive, missing, resolve, shelve, switch,
 
317
  unshelve, whoami. (Martin von Gagern, #527878)
 
318
 
 
319
Bug Fixes
 
320
*********
 
321
 
 
322
* ``bzr branch`` to a new repository with a default stacking policy no
 
323
  longer transfers the full history unnecessarily.
 
324
  (Andrew Bennetts, #597942)
 
325
 
 
326
* ``bzr init`` does not recursively scan directory contents anymore
 
327
  leading to faster init for directories with existing content.
 
328
  (Martin [gz], Parth Malwankar, #501307)
 
329
 
 
330
* ``bzr log --exclude-common-ancestry`` is now taken into account for
 
331
  linear ancetries. (Vincent Ladeuil, #575631)
 
332
 
 
333
* ``bzr log -r branch:REMOTE`` can now properly log the remote branch,
 
334
  rather than trying to fetch the data locally and failing because of a
 
335
  readonly error. (Martin von Gagern, #149270)
 
336
 
 
337
* ``bzr pull`` now works when a lp: URL is explicitly defined as the parent
 
338
  or pull location in locations.conf or branch.conf.
 
339
  (Gordon Tyler, #534787)
 
340
 
 
341
* ``bzr reconfigure --unstacked`` now works with branches accessed via a
 
342
  smart server. (Andrew Bennetts, #551525)
 
343
 
 
344
* ``BzrDir.find_branches`` should ignore branches with missing repositories.
 
345
  (Marius Kruger, Robert Collins)
 
346
 
 
347
* ``BzrDir.find_bzrdirs`` should ignore dirs that raises PermissionDenied.
 
348
  (Marius Kruger, Robert Collins)
 
349
 
 
350
* Ensure that wrong path specifications in ``BZR_PLUGINS_AT`` display
 
351
  proper error messages. (Vincent Ladeuil, #591215)
 
352
 
 
353
* Explicitly removing ``--profile-imports`` option from parsed command-line
 
354
  arguments on Windows, because bzr script does the same.
 
355
  (Alexander Belchenko, #588277)
 
356
 
 
357
* Fetching was slightly confused about the best code to use and was
 
358
  using a new code path for all branches, resulting in more lookups than
 
359
  necessary on old branches. (Robert Collins, #593515)
 
360
 
 
361
* Final fix for 'no help for command' issue. We now show a clean message
 
362
  when a command has no help, document how to set help more clearly, and
 
363
  test that all commands available to the test suite have help.
 
364
  (Robert Collins, #177500)
 
365
 
 
366
* Invalid patterns supplied to ``Globster`` or ``lazy_regex`` now raise
 
367
  ``InvalidPattern`` exception showing clear error message to the user.
 
368
  (Parth Malwankar #300062)
 
369
 
 
370
* Progress output is cleaned up when exiting.  (Aaron Bentley)
 
371
 
 
372
* Raise ValueError instead of a string exception.
 
373
  (John Arbash Meinel, #586926)
 
374
 
 
375
* Relative imports in plugins are now handled correctly when using
 
376
  BZR_PLUGINS_AT. (Vincent Ladeuil, #588959)
 
377
 
 
378
* ``ScriptRunner`` now strips off leading indentation from test scripts,
 
379
  which previously caused "SyntaxError: No command for line".
 
380
  (Martin Pool)
 
381
 
 
382
* Show unicode filenames in diff headers using terminal encoding. 
 
383
  (Alexander Belchenko, Bug #382699)
 
384
  NOTE for Windows users: If user need to save diff to file then user need to
 
385
  change encoding of the terminal to ANSI encoding with command ``chcp XXX``
 
386
  (e.g. ``chcp 1251`` for Russian Windows).
 
387
 
 
388
* URL displayed for use with ``break-lock`` when smart server sees lock
 
389
  contention are now valid. Default timeout for lock contention retry is
 
390
  now 30 seconds instead of 300 seconds.
 
391
  (Parth Malwankar, #250451)
 
392
 
 
393
* ``walkdirs`` now raises a useful message when the filenames are not using
 
394
  the filesystem encoding. (Eric Moritz, #488519)
 
395
 
 
396
* Enable debugging of bzr on windows with pdb and other tools. This was 
 
397
  broken because we call GetCommandLineW on windows. The fix adjusts the 
 
398
  command line we get to be the same length as sys.argv.
 
399
  (Jason Spashett, Alexander Belchenko, #587868)
 
400
 
 
401
Improvements
 
402
************
 
403
 
 
404
* Bazaar now reads data from SSH connections more efficiently on platforms
 
405
  that provide the ``socketpair`` function, and when using paramiko.
 
406
  (Andrew Bennetts, #590637)
 
407
 
 
408
* ``Branch.copy_content_into`` is now a convenience method dispatching to
 
409
  a ``InterBranch`` multi-method. This permits ``bzr-loom`` and other
 
410
  plugins to intercept this even when a ``RemoteBranch`` proxy is in use.
 
411
  (Robert Collins, #201613)
 
412
 
 
413
* ``Branch`` formats can now be loaded lazily by registering a
 
414
  ``MetaDirBranchFormatFactory`` rather than an actual format. This will
 
415
  cause the named format class to be loaded only when an enumeration of
 
416
  formats is needed or when the format string for the object is
 
417
  encountered. (Robert Collins, Jelmer Vernooij)
 
418
 
 
419
* The encoding that bzr uses to output things other than file content can
 
420
  now be overridden via the output_encoding configuration option.
 
421
  (Martin Pool, #340394)
 
422
 
 
423
* Use lazy imports in ``bzrlib/merge.py`` so that plugins like ``news_merge``
 
424
  do not cause modules to be loaded unnecessarily just because the plugin
 
425
  registers a merge hook.  This improves ``bzr rocks`` time by about 25%
 
426
  in a default installation (with just the core plugins).
 
427
  (Andrew Bennetts)
 
428
 
 
429
Documentation
 
430
*************
 
431
 
 
432
* Added ``regression`` tag to our tags list. (Robert Collins)
 
433
 
 
434
* Improved our release checklist to have a bit less churn and leave things
 
435
  ready-to-go for the next action (including other people doing
 
436
  development). (Robert Collins)
 
437
 
 
438
* Remove obsolete discussion of PQM in documentation about how to
 
439
  contribute to Bazaar.  (Martin Pool, #588444)
 
440
 
 
441
API Changes
 
442
***********
 
443
 
 
444
* ``bzrlib.branch.InterBranch._get_branch_formats_to_test`` now returns
 
445
  an iterable of format pairs, rather than just a single pair, permitting
 
446
  InterBranch objects that work with multiple permutations to be
 
447
  comprehensively tested. (Robert Collins)
 
448
 
 
449
* ``bzrlib.lsprof.profile`` will no longer silently generate bad threaded
 
450
  profiles when concurrent profile requests are made. Instead the profile
 
451
  requests will be serialised. Reentrant requests will now deadlock.
 
452
  (Robert Collins)
 
453
 
 
454
* ``bzrlib.knit.KnitSequenceMatcher``, which has been deprecated since
 
455
  2007, has been deleted.  Use ``PatienceSequenceMatcher`` from
 
456
  ``bzrlib.patiencediff`` instead. (Andrew Bennetts)
 
457
 
 
458
* ``bzrlib.re_compile_checked`` is now deprecated. Caller should handle
 
459
  ``bzrlib.errors.InvalidPattern`` exception thrown by ``re.match`` in
 
460
  case the default error message not suitable for the use case.
 
461
  (Parth Malwankar)
 
462
 
 
463
* ``bzrlib.tests.blackbox.ExternalBase`` is deprecated.  It provided only
 
464
  one method ``check_output``, and we now recommend checking command
 
465
  output using ``run_script``. (Martin Pool)
 
466
 
 
467
* ``bzrlib.transport.ssh.SSHVendor.connect_ssh`` now returns an object
 
468
  that implements the interface of ``bzrlib.transport.ssh.SSHConnection``.
 
469
  Third-party implementations of ``SSHVendor`` may need to be updated
 
470
  accordingly.  Similarly, any code using ``SSHConnection`` directly will
 
471
  need to be updated.  (Andrew Bennetts)
 
472
 
 
473
* The constructor of ``bzrilb.smart.medium.SmartSSHClientMedium`` has
 
474
  changed to take an ``SSHParams`` instance (replacing many individual
 
475
  values).  (Andrew Bennetts)
 
476
 
 
477
Internals
 
478
*********
 
479
 
 
480
* ``bzrlib.osutils.get_terminal_encoding`` will now only mutter its
 
481
  selection when explicitly requested; this avoids many duplicate calls
 
482
  being logged when helpers, wrappers and older code that manually calls
 
483
  it are executed it is now logged deliberately by the ui setup code.
 
484
  (Robert Collins)
 
485
 
 
486
* Improved ``bzrlib.urlutils`` to handle lp:foo/bar URLs. (Gordon Tyler)
 
487
 
 
488
* ``bzrlib._c_static_tuple.StaticTuple`` now implements ``__sizeof__``, so
 
489
  that ``sys.getsizeof`` and other memory analysis tools will report more
 
490
  accurate results. (Andrew Bennetts)
 
491
 
 
492
* The symbol_versioning module can now cleanup after itself -
 
493
  ``suppress_deprecation_warnings`` now returns a cleanup function.
 
494
  (Robert Collins)
 
495
 
 
496
Testing
 
497
*******
 
498
 
 
499
* Add ``bzrlib.tests.fixtures`` to hold code for setting up objects
 
500
  to test.  (Martin Pool)
 
501
 
 
502
* ``test_import_tariff`` now respects BZR_PLUGINS_AT and BZR_PLUGINS_DISABLE.
 
503
  (Vincent Ladeuil, #595587)
 
504
 
 
505
 
 
506
bzr 2.2b3
 
507
#########
 
508
 
 
509
:2.2b3: 2010-05-28
 
510
 
 
511
This third beta in the 2.2 series brings with it all the goodness of 2.1.2
 
512
and 2.0.6 (though it preceeds 2.0.6 slightly). Of particular note for
 
513
users are compatibility fixes with bzr 1.5 and below servers, a hopeful
 
514
end to the EINTR errors caused by SIGWINCH interactions, a shiny new
 
515
bash completion script and bzr will no longer guess at identity details -
 
516
it was too unreliable in reality. Use ``bzr whoami`` on every new install.
 
517
For developers we have some API changes which may impact plugins as well
 
518
as a bunch of our regular improvements to internal clarity and test
 
519
support.
 
520
 
 
521
Compatibility Breaks
 
522
********************
 
523
 
 
524
* An API break has been made to the lock_write method of ``Branch`` and
 
525
  ``Repository`` objects; they now return ``branch.BranchWriteLockResult``
 
526
  and ``repository.RepositoryWriteLockResult`` objects. This makes
 
527
  changing the API in future easier and permits some cleaner calling code.
 
528
  The lock_read method has also changed from having no defined return
 
529
  value to returning ``LogicalLockResult`` objects.
 
530
  (Robert Collins)
 
531
 
 
532
* ``bzr`` does not try to guess the username as ``username@hostname``
 
533
  and requires it to be explictly set. This can be set using ``bzr
 
534
  whoami``. (Parth Malwankar, #549310)
 
535
 
 
536
* ``bzrlib.commands.Command`` will now raise ValueError during
 
537
  construction if there is no __doc__ set. (Note, this will be reverted in
 
538
  2.2b4) (Robert Collins)
 
539
 
 
540
* The source tree no longer contains a contrib/zsh/_bzr completion
 
541
  script. The new file contrib/zsh/README suggests alternatives.
 
542
  (Martin von Gagern, #560030)
 
543
 
 
544
New Features
 
545
************
 
546
 
 
547
* ``bzr commit`` accepts ``-p`` (for "patch") as a shorter name for
 
548
  ``--show-diff``.
 
549
  (Parth Malwankar, #571467)
 
550
  
 
551
* ``bzr ignore`` now supports a ``--default-rules`` option that displays
 
552
  the default ignore rules used by bzr. The flag ``--old-default-rules``
 
553
  is no longer supported by ``ignore``.
 
554
  (Parth Malwankar, #538703)
 
555
 
 
556
* ``bzr pack`` now supports a ``--clean-obsolete-packs`` option that
 
557
  can save disk space by deleting obsolete pack files created during the
 
558
  pack operation.
 
559
  (Parth Malwankar, #304320)
 
560
 
 
561
* New command line option ``--authors`` to ``bzr log`` allows users to
 
562
  select which of the apparent authors and committer should be
 
563
  included in the log. Defaults depend on format. (Martin von Gagern, #513322)
 
564
 
 
565
* Support ``--directory`` option for a number of additional commands:
 
566
  added, annotate, bind, cat, cat-revision, clean-tree, deleted,
 
567
  export, ignore, ignored, lookup-revision, ls, modified, nick,
 
568
  re-sign, unbind, unknowns.
 
569
  (Martin von Gagern, #527878)
 
570
 
 
571
* The bash_completion plugin from the bzr-bash-completion project has
 
572
  been merged into the tree. It provides a bash-completion command and
 
573
  replaces the outdated ``contrib/bash/bzr`` script with a version
 
574
  using the plugin. (Martin von Gagern, #560030)
 
575
 
 
576
* A new transport based on GIO (the gnome i/o library) provides access to
 
577
  samba shares, webdav using gio+smb and gio+dav. It is also possible to
 
578
  use gio for some already existing transport methods as gio+file,
 
579
  gio+sftp, gio+ftp. 
 
580
  (Mattias Eriksson)
 
581
 
 
582
Bug Fixes
 
583
*********
 
584
 
 
585
* Alias information shown by ``bzr help`` is now accurate. This
 
586
  was showing an internal object name for some plugin aliases.
 
587
  (Parth Malwankar, #584650)
 
588
 
 
589
* ``.bazaar``, ``.bazaar/bazaar.conf`` and ``.bzr.log`` inherit user and
 
590
  group ownership from the containing directory. This allow bzr to work
 
591
  better with sudo.
 
592
  (Martin <gzlist@googlemail.com>, Parth Malwankar, #376388)
 
593
 
 
594
* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
 
595
  support of bzr-externals and scmproj plugins.
 
596
  (Alexander Belchenko, bug #572098)
 
597
 
 
598
* ``bzr ignore`` will no longer add duplicate patterns to .bzrignore.
 
599
  (Gordon Tyler, #572092)
 
600
 
 
601
* ``bzr log --exclude-common-ancestry -r X..Y`` displays the revisions that
 
602
  are part of Y ancestry but not part of X ancestry (aka the graph
 
603
  difference).
 
604
  (Vincent Ladeuil, #320119)
 
605
 
 
606
* ``bzr lp-propose`` which was switched to use production Launchpad API
 
607
  servers a few commits ago has been reverted to use edge: there is a
 
608
  problem with using production which isn't trivially obvious, so we've
 
609
  filed a bug to track it, and until thats fixed will be using edge.
 
610
  (Robert Collins, #583667)
 
611
 
 
612
* ``bzr rm`` should not refuse to delete directories which contained a file
 
613
  which has been moved elsewhere in the tree after the previous commit.
 
614
  (Marius Kruger, Daniel Watkins, #129880)
 
615
 
 
616
* ``bzr selftest --parallel=fork`` wait for its children avoiding zombies.
 
617
  (Vincent Ladeuil, #566670)
 
618
 
 
619
* ``bzr selftest`` should not use ui.note() since it's not unicode safe.
 
620
  (Vincent Ladeuil, #563997)
 
621
 
 
622
* CommitBuilder refuses to create revisions whose trees have no root.
 
623
  (Aaron Bentley)
 
624
 
 
625
* Do not register a SIGWINCH signal handler, instead just poll for the
 
626
  terminal width as needed.  This avoids the "Interrupted System Call"
 
627
  problems that occur on POSIX with all currently released versions of
 
628
  Python.
 
629
  (Andrew Bennetts, #583941)
 
630
 
 
631
* Don't mention --no-strict when we just issue the warning about unclean trees.
 
632
  (Vincent Ladeuil, #401599)
 
633
 
 
634
* Fixed ``AssertionError`` when accessing smart servers running Bazaar
 
635
  versions before 1.6.
 
636
  (Andrew Bennetts, #528041)
 
637
 
 
638
* Improved progress bar for fetch (2a format only). Bazaar now shows an
 
639
  estimate of the number of records to be fetched vs actually fetched.
 
640
  (Parth Malwankar, #374740, #538868)
 
641
 
 
642
* Reduce peak memory by one copy of compressed text.
 
643
  (John Arbash Meinel, #566940)
 
644
 
 
645
* ``RemoteBranch.lock_write`` raises ``ReadOnlyError`` if called during a
 
646
  read lock, rather than causing an ``AttributeError``.
 
647
  (Andrew Bennetts, Danilo Segan, #582781)
 
648
 
 
649
* Selftest was failing with testtools 0.9.3, which caused an
 
650
  AssertionError raised from a cleanUp to be reported as a Failure, not an
 
651
  Error, breaking on of our test hygiene tests.
 
652
  (Robert Collins, Vincent Ladeuil).
 
653
 
 
654
* ``set_user_option`` with a dict on remote branches no longer fails with
 
655
  an AttributeError.  There is a new ``Branch.set_config_option_dict`` RPC
 
656
  to support this efficiently.
 
657
  (Andrew Bennetts, #430382)
 
658
  
 
659
* Show the filenames when a file rename fails so that the error will be
 
660
  more comprehensible.
 
661
  (Martin Pool, #491763)
 
662
 
 
663
* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
 
664
  (John Arbash Meinel, #582656)
 
665
 
 
666
* Unicode characters in aliases are now handled correctly and do not cause
 
667
  UnicodeEncodeError exception. (Parth Malwankar, #529930)
 
668
 
 
669
* Unicode commit messages that are the same as a file name no longer cause
 
670
  UnicodeEncodeError. ``ui.text.show_warning`` now handles unicode
 
671
  messages.
 
672
  (Parth Malwankar, #563646)
 
673
 
 
674
* When passing a file to ``UTF8DirReader`` make sure to close the current
 
675
  directory file handle after the chdir fails. Otherwise when passing many
 
676
  filenames into a command line ``bzr status`` we would leak descriptors.
 
677
  (John Arbash Meinel, #583486)
 
678
 
 
679
Improvements
 
680
************
 
681
 
 
682
* ``append_revisions_only`` will now be interpreted as a boolean and a
 
683
  warning emitted if illegal values are used. Note that for projects
 
684
  that needs to maintain compatibility with previsous bzr versions,
 
685
  only 'True' and 'False' strings must be used (previous versions of
 
686
  bzr will interpret all strings differing from 'True'
 
687
  (case-sensitive) as false.
 
688
  (Brian de Alwis, Vincent Ladeuil)
 
689
 
 
690
* ``bzr ls`` now supports short options for existing long options.
 
691
  ``-k/--kind``, ``-i/--ignored``, ``-u/--unknown`` and ``-0/--null``.
 
692
  (Parth Malwankar, #181124)
 
693
 
 
694
* ``Config.get_user_option_as_bool`` will now warn if a value cannot
 
695
  be interpreted as a boolean.
 
696
  (Vincent Ladeuil)
 
697
 
 
698
* The all-in-one Windows installer will now be built with docstrings stripped
 
699
  from the library zip, reducing the size and slightly improving cold startup
 
700
  time. Bundled plugins are unchanged for the moment, but if adding other new
 
701
  plugins to an all-in-one installation, ensure they are compiled and
 
702
  installed with -O1 or help may not work. (Martin [gz])
 
703
 
 
704
API Changes
 
705
***********
 
706
 
 
707
* Added ``bzrlib.merge.PerFileMerger``, a more convenient way to write
 
708
  some kinds of ``merge_file_content`` hook functions.
 
709
  (Andrew Bennetts)
 
710
  
 
711
* `BzrDir`, `Branch`, `Repository` and `WorkingTree` now all support `user_url`,
 
712
  `user_transport`, `control_url` and `control_transport` members pointing
 
713
  respectively to the directory containing the ``.bzr`` control directory, 
 
714
  and to the directory within ``.bzr`` used for the particular component.
 
715
  All of them inherit from `ControlComponent` which provides default
 
716
  implementations.
 
717
  (Martin Pool)
 
718
 
 
719
* Lock methods on ``Tree``, ``Branch`` and ``Repository`` are now
 
720
  expected to return an object which can be used to unlock them. This reduces
 
721
  duplicate code when using cleanups. The previous 'tokens's returned by
 
722
  ``Branch.lock_write`` and ``Repository.lock_write`` are now attributes
 
723
  on the result of the lock_write. ``repository.RepositoryWriteLockResult``
 
724
  and ``branch.BranchWriteLockResult`` document this. (Robert Collins)
 
725
 
 
726
* ``Repository.refresh_data`` may now be called in a write group on
 
727
  pack-based repositories.  Older repositories will still raise an error
 
728
  in this case.  Subclasses of ``Repository`` can still override
 
729
  ``Repository._refresh_data``, but are now responsible for raising
 
730
  ``bzrlib.repository.IsInWriteGroupError`` if they do not support
 
731
  ``refresh_data`` during a write group.
 
732
  (Andrew Bennetts, #574236)
 
733
 
 
734
Internals
 
735
*********
 
736
 
 
737
* ``chk_map._bytes_to_text_key`` is now an optimized function to extract
 
738
  the (file-id, revision-id) key from a CHKInventory entry. This can
 
739
  potentially shave 5-10% time off during a large fetch. Related to bug
 
740
  #562666. (John Arbash Meinel)
 
741
 
 
742
* ``log._get_info_for_log_files`` now takes an add_cleanup callable.
 
743
  (Robert Collins)
 
744
 
 
745
* ``_remember_remote_is_before`` no longer raises AssertionError when
 
746
  suboptimal network behaviour is noticed; instead it just mutters to the
 
747
  log file (and warns the user if they have set the ``hpss`` debug flag).
 
748
  This was causing unnecessary aborts for performance bugs that are minor
 
749
  at worst.
 
750
  (Andrew Bennetts, #528041)
 
751
 
 
752
* Permit bzr to run under ``python -OO`` which reduces the size of bytecode
 
753
  files loaded from disk. To ensure docstrings needed for help are never
 
754
  stripped, the prefix ``__doc__ =`` should now be used.
 
755
  (Martin <gzlist@googlemail.com>)
 
756
 
 
757
* No longer require zlib headers to build extensions, and remove the need
 
758
  for seperate copy of zlib library on windows.
 
759
  (John Arbash Meinel, Martin <gzlist@googlemail.com>, #566923)
 
760
 
 
761
Testing
 
762
*******
 
763
 
 
764
* Added ``bzrlib.tests.matchers`` as a place to put matchers, along with
 
765
  our first in-tree matcher. See the module docstring for details.
 
766
  (Robert Collins)
 
767
 
 
768
* ``bzr selftest --parallel=subprocess`` now works correctly on win32.
 
769
   (Gordon Tyler, #551332)
 
770
 
 
771
* Workaround ``Crypto.Random`` check leading to spurious test
 
772
  failures on Lucid, FreeBSD and gentoo.  
 
773
  (Vincent Ladeuil, #528436)
 
774
 
 
775
* New class ``ExecutableFeature`` for checking the availability of
 
776
  executables on the ``PATH``. Migrated from bash_completion plugin.
 
777
  (Martin von Gagern)
 
778
 
 
779
 
 
780
bzr 2.2b2
 
781
#########
 
782
 
 
783
:2.2b2: 2010-04-16
 
784
 
 
785
This is a somewhat early second beta of the 2.2 series, to fix a python2.4
 
786
incompatibility in the 2.2b1 release.  It also includes a swag of
 
787
performance, usability and correctness improvements: test feedback on all
 
788
of these would be welcome.
 
789
 
 
790
 
 
791
New Features
 
792
************
 
793
 
 
794
* ``bzr diff`` now supports a --format option, which can be used to 
 
795
  select alternative diff formats. (Jelmer Vernooij, #555994)
 
796
 
 
797
Bug Fixes
 
798
*********
 
799
 
 
800
* ``bzr dpush``, ``bzr push`` and ``bzr send`` will now issue a warning
 
801
  instead of failing when dirty trees are involved. The corresponding
 
802
  ``dpush_strict``, ``push_strict`` and ``send_strict`` should be set to
 
803
  True explicitly to get the previous behaviour.  
 
804
  (Vincent Ladeuil, #519319)
 
805
 
 
806
* ``bzr export`` to tar file does not fail if any parent directory
 
807
  contains unicode characters. This works around upstream Python bug
 
808
  http://bugs.python.org/issue8396 .
 
809
  (Parth Malwankar, #413406)
 
810
 
 
811
* ``bzr switch`` does not die if a ConfigurableFileMerger is used.
 
812
  (Aaron Bentley, #559436)
 
813
 
 
814
* ``bzr update`` when a pending merge in the working tree has been merged
 
815
  into the master branch will no longer claim that old commits have become
 
816
  pending merges. (Robert Collins, #562079)
 
817
 
 
818
* ``bzrlib.mutabletree.MutableTree.commit`` will now support a passed in
 
819
  config as in previous versions of bzrlib. (Robert Collins)
 
820
 
 
821
* Fix glitch in the warning about unclean trees display.
 
822
  (Vincent Ladeuil, #562665)
 
823
 
 
824
* Fixed Python2.4 incompatibilities in the bzr2.2b1 source tarball.
 
825
  (Martin Pool)
 
826
 
 
827
* Help messages generated by ``RegistryOption.from_kwargs`` list the
 
828
  switches in alphabetical order, rather than in an undefined order.
 
829
  (Martin von Gagern, #559409)
 
830
 
 
831
* Make sure the ``ExecutablePath`` and ``InterpreterPath`` are set in
 
832
  Apport crash reports, to avoid "This problem report applies to a program
 
833
  which is not installed any more" error.
 
834
  (Martin Pool, James Westby, #528114)
 
835
 
 
836
* Reset ``siginterrupt`` flag to False every time we handle a signal
 
837
  installed with ``set_signal_handler(..., restart_syscall=True)`` (from
 
838
  ``bzrlib.osutils``.  Reduces the likelihood of "Interrupted System Call"
 
839
  errors compared to registering ``signal.signal`` directly.
 
840
  (Andrew Bennetts)
 
841
 
 
842
* When invoked with a range revision, ``bzr log`` doesn't show revisions
 
843
  that are not part of the Y revisions ancestry anymore when invoked with
 
844
  -rX..Y.
 
845
  (Vincent Ladeuil, #474807)
 
846
 
 
847
* Properly handle ``param_name`` attribute for ``ListOption``.
 
848
  (Martin von Gagern, #387117)
 
849
 
 
850
Improvements
 
851
************
 
852
 
 
853
* ``bzr commit`` will prompt before using a commit message that was
 
854
  generated by a template and not edited by the user.
 
855
  (Robert Collins, #530265)
 
856
 
 
857
* ``bzr diff`` read-locks the trees and branches only once, saving about
 
858
  10-20ms on ``bzr diff`` in a bzr.dev tree.
 
859
  (Andrew Bennetts)
 
860
 
 
861
* ``bzr missing`` read-locks the branches only once.
 
862
  (Andrew Bennetts)
 
863
  
 
864
* ``bzr pull`` locks the branches and tree only once.
 
865
  (Andrew Bennetts)
 
866
  
 
867
* Index lookups in pack repositories search recently hit pack files first.  
 
868
  In repositories with many pack files this can greatly reduce the
 
869
  number of files accessed, the number of bytes read, and the number of
 
870
  read calls.  An incremental pull via plain HTTP takes half the time and
 
871
  bytes for a moderately large repository.  (Andrew Bennetts)
 
872
 
 
873
* Index lookups only re-order the indexes when the hit files aren't
 
874
  already first. Reduces the cost of reordering
 
875
  (John Arbash Meinel, #562429)
 
876
 
 
877
* Less code is loaded at startup.  (Cold-cache start time is about 10-20%
 
878
  less.)
 
879
  (Martin Pool, #553017)
 
880
 
 
881
API Changes
 
882
***********
 
883
 
 
884
* ``bzrlib.diff.get_trees_and_branches_to_diff`` is deprecated.  Use
 
885
  ``get_trees_and_branches_to_diff_locked`` instead.
 
886
  (Andrew Bennetts)
 
887
 
 
888
* ``TreeTransform.commit`` supports the full set of commit parameters, and
 
889
  auto-determines branch nick if not supplied.  (Aaron Bentley)
 
890
  
 
891
Internals
 
892
*********
 
893
 
 
894
* ``bzrlib.commands.Command.run_direct`` is no longer needed - the pre
 
895
  2.1 method of calling run() to perform testing or direct use via the API
 
896
  is now possible again. As part of this, the _operation attribute on
 
897
  Command is now transient and only exists for the duration of ``run()``.
 
898
  (Robert Collins)
 
899
 
 
900
bzr 2.2b1
 
901
#########
 
902
 
 
903
:2.2b1: 2010-04-01
 
904
 
 
905
This is the first beta of the 2.2 series, leading up to a 2.2.0
 
906
release in July or August.  Beta releases are suitable for everyday use
 
907
but may cause some incompatibilities with plugins.  Some plugins may need
 
908
small updates to work with 2.2b1.
 
909
 
 
910
2.2b1 includes some changes to make merge conflicts easier to understand
 
911
and resolve.  It also removes some old unnecessary code, and loads
 
912
somewhat less code at startup.  It starts adding a common infrastructure
 
913
for dealing with colocated named branches, which can be implemented in
 
914
various ways in either bzr native or foreign formats.   On Ubuntu and
 
915
other platforms with the apport bug-reporting library, there's an easier
 
916
path to report problems with bzr.  We plan to continue with these themes
 
917
through the 2.2 series.
 
918
 
 
919
Over thirty bugs have been fixed, including in the log command, exporting
 
920
to tarballs, restarting interrupted system calls, portability of compiled
 
921
extensions, making backups during upgrade, and locking on ftp.
 
922
 
 
923
Compatibility Breaks
 
924
********************
 
925
 
 
926
* BTreeGraphIndex can now take an offset to indicate that the data starts
 
927
  somewhere other than then beginning of the file. (John Arbash Meinel)
 
928
 
 
929
* Deleted very old hidden commands ``versionedfile-list``,
 
930
  ``weave-plan-merge``, ``weave-merge-text``.
 
931
  (Martin Pool)
 
932
 
 
933
* ``Repository.get_inventory_sha1()`` and ``Repository.get_revision_xml()`` 
 
934
  have been removed. (Jelmer Vernooij)
 
935
 
 
936
* ``Repository.get_revision_inventory()`` has been removed in favor of
 
937
  ``Repository.get_inventory()``. (Jelmer Vernooij)
 
938
 
 
939
* All test servers have been moved out of the bzrlib.transport hierarchy to
 
940
  bzrlib.tests.test_server *except* for MemoryServer, ChrootServer and
 
941
  PathFilteringServer. ``bzrlib`` users may encounter test failures that can
 
942
  be fixed by updating the related imports from ``bzrlib.transport.xxx`` to
 
943
  ``bzrlib.tests.test_server``.
 
944
  (Vincent Ladeuil)
 
945
 
 
946
* ``BranchReferenceFormat.initialize()`` now takes an optional name argument
 
947
  as its second parameter, for consistency with the initialize() method of
 
948
  other formats. (Jelmer Vernooij)
 
949
 
 
950
New Features
 
951
************
 
952
 
 
953
* Added ``bzr remove-branch`` command that can remove a local or remote 
 
954
  branch. (Jelmer Vernooij, #276295)
 
955
 
 
956
* ``bzr export`` now takes an optional argument ``--per-file-timestamps``
 
957
  to set file mtimes to the last timestamp of the last revision in which
 
958
  they were changed rather than the current time. (Jelmer Vernooij)
 
959
 
 
960
* If the Apport crash-reporting tool is available, bzr crashes are now
 
961
  stored into the ``/var/crash`` apport spool directory, and the user is
 
962
  invited to report them to the developers from there, either
 
963
  automatically or by running ``apport-bug``.  No information is sent
 
964
  without specific permission from the user.  (Martin Pool, #515052)
 
965
 
 
966
* Parsing of command lines, for example in ``diff --using``, no longer
 
967
  treats backslash as an escape character on Windows.
 
968
  (Gordon Tyler, #392428)
 
969
 
 
970
* Plugins can be disabled by defining ``BZR_DISABLE_PLUGINS`` as
 
971
  a list of plugin names separated by ':' (';' on windows).
 
972
  (Vincent Ladeuil, #411413)
 
973
 
 
974
* Plugins can be loaded from arbitrary locations by defining
 
975
  ``BZR_PLUGINS_AT`` as a list of name@path separated by ':' (';' on
 
976
  windows). This takes precedence over ``BZR_PLUGIN_PATH`` for the
 
977
  specified plugins. This is targeted at plugin developers for punctual
 
978
  needs and *not* intended to replace ``BZR_PLUGIN_PATH``.  
 
979
  (Vincent Ladeuil, #82693)
 
980
 
 
981
* Tag names can now be determined automatically by ``automatic_tag_name`` 
 
982
  hooks on ``Branch`` if they are not specified on the command line.
 
983
  (Jelmer Vernooij)
 
984
 
 
985
* Tree-shape conflicts can be resolved by providing ``--take-this`` and
 
986
  ``--take-other`` to the ``bzr resolve`` command. Just marking the conflict
 
987
  as resolved is still accessible via the ``--done`` default action.
 
988
  (Vincent Ladeuil)
 
989
 
 
990
* Merges can be proposed on Launchpad with the new lp-propose-merge command.
 
991
  (Aaron Bentley, Jonathan Lange)
 
992
 
 
993
Bug Fixes
 
994
*********
 
995
 
 
996
* Added docstring for ``Tree.iter_changes``
 
997
  (John Arbash Meinel, #304182)
 
998
 
 
999
* Allow additional arguments to
 
1000
  ``RemoteRepository.add_inventory_by_delta()``. (Jelmer Vernooij, #532631)
 
1001
 
 
1002
* Allow exporting a single file using ``bzr export``.
 
1003
  (Michal Junák, #511987)
 
1004
 
 
1005
* Allow syscalls to automatically restart when ``TextUIFactory``'s
 
1006
  SIGWINCH handler is invoked, avoiding ``EINTR`` errors during blocking
 
1007
  IO, which are often poorly handled by Python's libraries and parts of
 
1008
  bzrlib.  (Andrew Bennetts, #496813)
 
1009
 
 
1010
* Avoid infinite recursion when probing for apport.
 
1011
  (Vincent Ladeuil, #516934)
 
1012
 
 
1013
* Avoid ``malloc(0)`` in ``patiencediff``, which is non-portable.
 
1014
  (Martin Pool, #331095)
 
1015
 
 
1016
* Avoid truncating svn URLs.
 
1017
  (Martin Pool, Martin von Gagern, #545185)
 
1018
 
 
1019
* ``bzr add`` will not add conflict related files unless explicitly required.
 
1020
  (Vincent Ladeuil, #322767, #414589)
 
1021
 
 
1022
* ``bzr dump-btree`` now works on ``*.cix`` and ``*.six`` files.  Those
 
1023
  indices do not have reference lists, so ``dump-btree`` will simply show
 
1024
  ``None`` instead.  (Andrew Bennetts, #488607)
 
1025
 
 
1026
* ``bzr help`` will no longer trigger the get_missing_command hook when
 
1027
  doing a topic lookup. This avoids prompting (like 'no command plugins/loom,
 
1028
  did you mean log?') when getting help. In future we may trigger the hook 
 
1029
  deliberately when no help topics match from any help index.
 
1030
  (Robert Collins, #396261)
 
1031
 
 
1032
* ``bzr log -n0 -r..A.B.C`` should not crash but just consider the None
 
1033
  revspec as representing the first revision of the branch.
 
1034
  (Vincent Ladeuil, #519862)
 
1035
 
 
1036
* ``bzr remove-tree`` can now remove multiple working trees.
 
1037
  (Jared Hance, Andrew Bennetts, #253137)
 
1038
 
 
1039
* ``bzr resolve --take-this`` and ``--take-other`` now correctly renames
 
1040
  the kept file on content conflicts where one side deleted the file.
 
1041
  (Vincent Ladeuil, #529968)
 
1042
 
 
1043
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
 
1044
  permissions as ``.bzr`` directory on a POSIX OS.
 
1045
  (Parth Malwankar, #262450)
 
1046
 
 
1047
* ``bzr upgrade`` now names backup directory as ``backup.bzr.~N~`` instead
 
1048
  of ``backup.bzr``. This directory is ignored by bzr commands such as
 
1049
  ``add``.
 
1050
  (Parth Malwankar, #335033, #300001)
 
1051
 
 
1052
* Cope with non-utf8 characters inside ``.bzrignore``.
 
1053
  (Jason Spashett, #183504)
 
1054
 
 
1055
* Correctly interpret "451 Rename/move failure: Directory not empty" from
 
1056
  ftp servers while trying to take a lock.
 
1057
  (Martin Pool, #528722)
 
1058
 
 
1059
* DirStateRevisionTree.kind() was returning wrong result when 'kind'
 
1060
  changes occured between the workingtree and one of its parents.
 
1061
  (Vincent Ladeuil, #535547)
 
1062
 
 
1063
* Fix ``log`` to better check ancestors even if merged revisions are involved.
 
1064
  (Vincent Ladeuil, #476293)
 
1065
 
 
1066
* Loading a plugin from a given path with ``BZR_PLUGINS_AT`` doesn't depend
 
1067
  on os.lisdir() order and is now reliable.
 
1068
  (Vincent Ladeuil, #552922).
 
1069
 
 
1070
* Many IO operations that returned ``EINTR`` were retried even if it
 
1071
  wasn't safe to do so via careless use of ``until_no_eintr``.  Bazaar now
 
1072
  only retries operations that are safe to retry, and in some cases has
 
1073
  switched to operations that can be retried (e.g. ``sock.send`` rather than
 
1074
  ``sock.sendall``).
 
1075
  (Andrew Bennetts, Martin <gzlist@googlemail.com>, #496813)
 
1076
 
 
1077
* Path conflicts now support --take-this and --take-other even when a
 
1078
  deletion is involved.
 
1079
  (Vincent Ladeuil, #531967)
 
1080
 
 
1081
* Network transfer amounts and rates are now displayed in SI units according
 
1082
  to the Ubuntu Units Policy <https://wiki.ubuntu.com/UnitsPolicy>.
 
1083
  (Gordon Tyler, #514399)
 
1084
 
 
1085
* Support kind markers for socket and fifo filesystem objects. This
 
1086
  prevents ``bzr status --short`` from crashing when those files are
 
1087
  present.  (John Arbash Meinel, #303275)
 
1088
 
 
1089
* ``bzr mkdir DIR`` will not create DIR unless DIR's parent is a versioned
 
1090
   directory. (Parth Malwankar, #138600)
 
1091
 
 
1092
* SSH child processes will now ignore SIGQUIT on nix systems so breaking into
 
1093
  the debugger won't kill the session.
 
1094
  (Martin <gzlist@googlemail.com>, #162502)
 
1095
 
 
1096
* Tolerate patches with leading noise in ``bzr-handle-patch``.
 
1097
  (Toshio Kuratomi, Martin Pool, #502076)
 
1098
 
 
1099
* ``update -r`` now supports updating to revisions that are not on
 
1100
  mainline (i.e. it supports dotted revisions).
 
1101
  (Parth Malwankar, #517800)
 
1102
 
 
1103
* Use first apparent author not committer in GNU Changelog format.
 
1104
  (Martin von Gagern, #513322)
 
1105
 
 
1106
API Changes
 
1107
***********
 
1108
 
 
1109
* ``bzrlib.merge_directive._BaseMergeDirective`` has been renamed to 
 
1110
  ``bzrlib.merge_directive.BaseMergeDirective`` and is now public.
 
1111
  (Jelmer Vernooij)
 
1112
 
 
1113
* ``BranchFormat.initialize`` now takes an optional ``name`` of the colocated 
 
1114
  branch to create. (Jelmer Vernooij)
 
1115
 
 
1116
* ``BzrDir.get_branch_transport`` now takes an optional ``name`` of the 
 
1117
  colocated branch to open. (Jelmer Vernooij)
 
1118
 
 
1119
* Added ``bzrlib.osutils.set_signal_handler``, a convenience function that
 
1120
  can set a signal handler and call ``signal.siginterrupt(signum,
 
1121
  False)`` for it, if the platform and Python version supports it.
 
1122
  (Andrew Bennetts, #496813)
 
1123
 
 
1124
* New ``bzrlib.initialize`` is recommended for programs using bzrlib to 
 
1125
  run when starting up; it sets up several things that previously needed
 
1126
  to be done separately.
 
1127
  (Martin Pool, #507710)
 
1128
 
 
1129
* Exporters now support a ``per_file_timestamps`` argument to write out the 
 
1130
  timestamp of the commit in which a file revision was introduced.
 
1131
  (Jelmer Vernooij)
 
1132
 
 
1133
* New method ``BzrDir.list_branches()`` that returns a sequence of branches 
 
1134
  present in a control directory. (Jelmer Vernooij)
 
1135
 
 
1136
* New method ``Repository.get_known_graph_ancestry()``. 
 
1137
  (Jelmer Vernooij, #495502)
 
1138
 
 
1139
* New transport methods ``readlink``, ``symlink`` and ``hardlink``.
 
1140
  (Neil Santos)
 
1141
 
 
1142
* Remove unused ``CommandFailed`` exception.
 
1143
  (Martin Pool)
 
1144
 
 
1145
Internals
 
1146
*********
 
1147
 
 
1148
* ``bzrlib.branchbuilder.BranchBuilder.build_snapshot`` now accepts a
 
1149
  ``message_callback`` in the same way that commit does. (Robert Collins)
 
1150
 
 
1151
* ``bzrlib.builtins.Commit.run`` raises ``bzrlib.errors.BoundBranchOutOfDate``
 
1152
  rather than ``bzrlib.errors.BzrCommandError`` when the bound branch is out
 
1153
  of date. (Gary van der Merwe)
 
1154
 
 
1155
* ``bzrlib.commands.run_bzr`` is more extensible: callers can supply the
 
1156
  functions to load or disable plugins if they wish to use a different
 
1157
  plugin mechanism; the --help, --version and no-command name code paths
 
1158
  now use the generic pluggable command lookup infrastructure.
 
1159
  (Robert Collins)
 
1160
 
 
1161
* ``bzrlib.errors.BoundBranchOutOfDate`` has a new field ``extra_help``
 
1162
  which can be set to add extra help to the error. (Gary van der Merwe)
 
1163
 
 
1164
* New method ``Branch.automatic_tag_name`` that can be used to find the
 
1165
  tag name for a particular revision automatically. (Jelmer Vernooij)
 
1166
 
 
1167
* The methods ``BzrDir.create_branch()``, ``BzrDir.destroy_branch()`` and 
 
1168
  ``BzrDir.open_branch()`` now take an optional ``name`` argument. 
 
1169
  (Jelmer Vernooij)
 
1170
 
 
1171
Testing
 
1172
*******
 
1173
 
 
1174
* bzr now has a ``.testr.conf`` file in its source tree configured
 
1175
  appropriately for running tests with Testrepository
 
1176
  (``https://launchpad.net/testrepository``). (Robert Collins)
 
1177
 
 
1178
* Documentation about testing with ``subunit`` has been tweaked.
 
1179
  (Robert Collins)
 
1180
 
 
1181
* Known failures has been added for resolve --take-other on ParentLoop
 
1182
  conflicts. This reflects bug #537956 without fixing it.
 
1183
  (Vincent Ladeuil)
 
1184
 
 
1185
* New ``bzrlib.tests.test_import_tariff`` can make assertions about what
 
1186
  Python modules are loaded, to guard against startup time or library
 
1187
  dependency regressions.
 
1188
  (Martin Pool)
 
1189
 
 
1190
* PQM will now run with subunit output. To analyze a PQM error use
 
1191
  tribunal, or cat log | subunit-filter | subunit2pyunit. (Robert Collins)
 
1192
 
 
1193
* Stop sending apport crash files to ``.cache`` in the directory from
 
1194
  which ``bzr selftest`` was run.  (Martin Pool, #422350)
 
1195
 
 
1196
* Tests no longer fail if "close() called during concurrent
 
1197
  operation on the same file object" occurs when closing the log file
 
1198
  (which can happen if a thread tries to write to the log file at the
 
1199
  wrong moment).  An warning will be written to ``stderr`` when this
 
1200
  happens, and another warning will be written if the log file could not
 
1201
  be closed after retrying 100 times.  (Andrew Bennetts, #531746)
 
1202
 
 
1203
..
 
1204
   vim: tw=74 ft=rst ff=unix