~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

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

  • Committer: Jelmer Vernooij
  • Date: 2011-01-11 04:33:12 UTC
  • mto: (5582.12.2 weave-plugin)
  • mto: This revision was merged to the branch mainline in revision 5718.
  • Revision ID: jelmer@samba.org-20110111043312-g4wx6iuf9662f36d
Move weave formats into bzrlib.plugins.weave_fmt.

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