~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

Merge bzr.dev to resolve news conflict

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