~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Martin Packman
  • Date: 2011-11-17 13:45:49 UTC
  • mto: This revision was merged to the branch mainline in revision 6271.
  • Revision ID: martin.packman@canonical.com-20111117134549-080e1fhtrzoicexg
Only assert FileExists path in test_transform directory clash tests to avoid stringification fallout

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