~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Andrew Bennetts
  • Date: 2010-10-08 08:15:14 UTC
  • mto: This revision was merged to the branch mainline in revision 5498.
  • Revision ID: andrew.bennetts@canonical.com-20101008081514-dviqzrdfwyzsqbz2
Split NEWS into per-release doc/en/release-notes/bzr-*.txt

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