~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Robert Collins
  • Date: 2007-04-19 02:27:44 UTC
  • mto: This revision was merged to the branch mainline in revision 2426.
  • Revision ID: robertc@robertcollins.net-20070419022744-pfdqz42kp1wizh43
``make docs`` now creates a man page at ``man1/bzr.1`` fixing bug 107388.
(Robert Collins)

Show diffs side-by-side

added added

removed removed

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