/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Andrew Bennetts
  • Date: 2011-01-06 06:26:23 UTC
  • mto: This revision was merged to the branch mainline in revision 5612.
  • Revision ID: andrew.bennetts@canonical.com-20110106062623-43tda58mqroybjui
Start of a developer doc describing how fetch works.

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