5
5
.. contents:: List of Releases
12
:2.2.0b1: Not released yet
11
:2.3.b2: NOT RELEASED YET
19
* Add ``mainline`` revision specifier, which selects the revision that
20
merged a specified revision into the mainline. (Aaron Bentley)
22
* Add ``annotate`` revision specifier, which selects the revision that
23
introduced a specified line of a file. (Aaron Bentley)
25
* ``bzr status`` now displays a summary of existing shelves after
26
the other status information. This is done using a ``post_status``
28
(Parth Malwankar, #403687)
33
* ``bzr break-lock --force`` breaks the lock without prompting. (Before
34
using this, make sure the process holding the lock really is dead.)
35
(Martin Pool, #392315)
37
* Skip tests that needs a bzr source tree when there isn't one. This is
38
needed to succesfully run the test suite for installed versions.
39
(Vincent Ladeuil, #644855).
41
* Skip the tests that requires respecting the chmod bits when running as root.
42
(Vincent Ladeuil, #646133)
56
* Small change to GroupCompressBlock to work more in terms of 'chunks'
57
rather than 'content' for its compressed storage. (John Arbash Meinel)
59
* When running ``bzr selftest --subunit`` the subunit stream will no
60
longer include the "log" information for tests which are considered to
61
be 'successes' (success, xfail, skip, etc) (John Arbash Meinel)
66
* Fix tests that failed when run under ``LANG=C``.
67
(Andrew Bennetts, #632387)
69
* Use tests.TestCaseInTempDir for tests that requires disk resources.
70
(Vincent Ladeuil, #650001)
77
This is the first beta of the 2.3 series, leading up to a 2.3.0
78
release in January or February. Beta releases are suitable for everyday use
79
but may cause some incompatibilities with plugins. Some plugins may need
80
small updates to work with 2.3b1.
82
2.3b1 includes some performance improvements in both speed and memory
83
consumption, some preliminary support for generating a texinfo version of
84
the doc and better support for launchpad. Many changes were made to make
85
our test suite more robust as well as numerous documentation fixes. It
86
improves the common infrastructure for dealing with colocated named
87
branches and foreign branches. We plan to continue with these themes
88
through the 2.3 series.
90
It also includes bug fixes for 2.0.6, 2.1.3 and 2.2.1 and over 40 fixes of
97
* BzrError subclasses no longer support the name "message" to be used
98
as an argument for __init__ or in _fmt format specification as this
99
breaks in some Python versions. errors.LockError.__init__ argument
100
is now named "msg" instead of earlier "message".
101
(Parth Malwankar, #603461)
103
* Additional merges after an unrelated branch has been merged with its
104
history no longer crash when deleted files are involved.
105
(Vincent Ladeuil, John Arbash Meinel, #375898)
107
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
108
previously-unversioned directory within the tree: the directory is
109
marked versioned too.
110
(Martin Pool, #192859)
112
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
113
target of the symlink.
114
(Martin Pool, John Arbash Meinel, #128562)
116
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
117
permissions as ``.bzr`` directory on a POSIX OS.
118
(Parth Malwankar, #262450)
120
* ``bzrlib.transform.TreeTransformBase.final_kind``,
121
``bzrlib.transform.TreeTransform.tree_kind`` and
122
``bzrlib.transform.TransformPreview.tree_kind`` now return None instead
123
of raising NoSuchFile. (Vincent Ladeuil)
125
* CommitBuilder now uses the committer instead of _config.username to generate
126
the revision-id. (Aaron Bentley, #614404)
128
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
129
way which should help avoid problems with concurrent writers.
130
(Vincent Ladeuil, #525571)
132
* `ControlDirFormat` and `ControlDir` have been split out of `BzrDirFormat`
133
and `BzrDir`, respectively. `ControlDirFormat`
134
and `ControlDir` should be used as the base classes for new non-.bzr
137
`BzrDirFormat.register_control_format` has been renamed to
138
`ControlDirFormat.register_format`.
140
`BzrDirFormat.register_server_control_format` has been removed.
142
Probing for control directories is now done by separate objects derived
143
from `bzrlib.controldir.Prober` and registered using
144
`bzrlib.controldir.ControlDirFormat.register_prober` or
145
`bzrlib.controldir.ControlDirFormat.register_server_prober`.
146
`BzrDirFormat.probe_transport` has been moved onto `Prober`.
148
`BzrDirFormat.register_format` has been renamed to
149
`BzrProber.register_bzrdir_format`.
151
`bzrlib.bzrdir.network_format_registry` has been moved to
156
* Cope with Microsoft FTP server that returns reply '250 Directory
157
created' when mkdir succeeds. (Martin Pool, #224373)
159
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
160
contains only NUL bytes). Instead warn the user, and allow ``bzr
161
break-lock`` to remove it. (Andrew Bennetts, #619872)
163
* `decode` parameter to get() method in FtpTransport and GioTransport classes
164
is deprecated. (Alexander Belchenko)
166
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
170
* Fix ``AttributeError on parent.children`` when adding a file under a
171
directory that was a symlink in the previous commit.
172
(Martin Pool, #192859)
174
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
175
``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
176
connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
177
stderr in some other circumstances. (Andrew Bennetts, #633745)
179
* Only call ``setlocale`` in the bzr startup script on posix systems. This
180
avoids an issue with the newer windows C runtimes used by Python 2.6 and
181
later which can mangle bytestrings printed to the console.
182
(Martin [gz], #631350)
184
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
185
which can result in "missing referenced chk root keys" errors when
186
fetching from repositories with affected revisions.
187
(Andrew Bennetts, #522637)
189
* Raise ValueError instead of a string exception.
190
(John Arbash Meinel, #586926)
192
* Reduce peak memory by one copy of compressed text.
193
(John Arbash Meinel, #566940)
195
* Repositories accessed via a smart server now reject being stacked on a
196
repository in an incompatible format, as is the case when accessing them
197
via other methods. This was causing fetches from those repositories via
198
a smart server (e.g. using ``bzr branch``) to receive invalid data.
199
(Andrew Bennetts, #562380)
201
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
202
error. This error was caused by 2.0 not being updated when upstream
203
python merged the end of run patch, which chose ``stopTestRun`` rather than
204
``done``. (Robert Collins, #571437)
206
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
207
being thrown from ``xml_serializer`` on certain cElementTree setups.
208
(Martin [gz], #254278)
210
* The old ``bzr selftest --benchmark`` option has been removed.
211
<https://launchpad.net/bzr-usertest> is an actively-maintained
212
macrobenchmark suite.
215
* `tree_files` and `internal_tree_files` are now deprecated in favor of
216
`WorkingTree.open_containing_paths`.
219
* Upgrading or fetching from a non-rich-root repository to a rich-root
220
repository (e.g. from pack-0.92 to 2a) no longer fails with
221
``'Inter1and2Helper' object has no attribute 'source_repo'``. This was
222
a regression from Bazaar 2.1. (Andrew Bennetts, #636930)
224
* When passing a file to ``UTF8DirReader`` make sure to close the current
225
directory file handle after the chdir fails. Otherwise when passing many
226
filenames into a command line ``bzr status`` we would leak descriptors.
227
(John Arbash Meinel, #583486)
232
* Added ``pre_status`` and ``post_status`` hooks. This allows plugins
233
to register custom handlers which will be invoked before/after the
234
standard status output is displayed. (Parth Malwankar)
236
* ``bzr break-lock --config [location]`` can now break config files
237
locks. (Vincent Ladeuil, #525571)
239
* ``bzrlib.config.LockableConfig`` is a base class for config files that
240
needs to be protected against multiple writers. All methods that
241
change a configuration variable value must be decorated with
242
@needs_write_lock (set_option() for example).
243
(Vincent Ladeuil, #525571)
245
* The ``lp:`` prefix will now use your known username (from
246
``bzr launchpad-login``) to expand ``~`` to your username. For example:
247
``bzr launchpad-login user && bzr push lp:~/project/branch`` will now
248
push to ``lp:~user/project/branch``. (John Arbash Meinel)
250
* New development format ``development8-subtree`` which is similar to the
251
``2a`` format and adds subtree support. (Jelmer Vernooij)
256
* Fix traceback with python-2.7's xmlrpclib
257
(Toshio Kuratomi, #612096)
259
* Allow using both --using and --diff-options.
260
(Matthäus G. Chajdas, #234708)
262
* Allow using non-integer bug ID with generic bug trackers.
263
(Alexandre Garnier, #440472)
265
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
266
previously-unversioned directory within the tree: the directory is
267
marked versioned too.
268
(Martin Pool, #192859)
270
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
271
``InvalidPattern`` exception error message now shows faulting
273
(Parth Malwankar #300062)
275
* ``clean-tree`` issues a warning if it is unable to delete a file
276
due to ``errno.EACCES`` instead of exiting with an error on Windows.
277
(Parth Malwankar, #430785)
279
* CommitBuilder now uses the committer instead of _config.username to generate
280
the revision-id. (Aaron Bentley, #614404)
282
* Configuration files in ``${BZR_HOME}`` are now protected against
283
concurrent writers by using a lock. (Vincent Ladeuil, #525571)
285
* Cope with Microsoft FTP Server and VSFTPd that return reply '250
286
Directory created' when mkdir succeeds. (Martin Pool, #224373)
288
* Decrease peak memory during ``bzr send``. The old code was caching all
289
text content and all inventory strings for all revisions before
290
computing the diffs. Now we only cache as long as there is a child that
291
will need them. Sending 2000 bzr revisions drops from 1.2GB peak to
292
256MB peak. (John Arbash Meinel, #614576)
294
* Don't print internal object name when print an invalid revision spec
295
error. (Neil Martinsen-Burrell, #598701)
297
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
298
contains only NUL bytes). Instead warn the user, and allow ``bzr
299
break-lock`` to remove it. (Andrew Bennetts, #619872)
301
* ``EPIPE`` can be raised during test server shutdown. This happened on
302
gentoo only so far. (Vincent Ladeuil, #627277)
304
* Errors occurring during http(s) test server starts should now be
305
handled cleanly. (Vincent Ladeuil, #392402)
307
* Fix ``AttributeError on parent.children`` when adding a file under a
308
directory that was a symlink in the previous commit.
309
(Martin Pool, #192859)
311
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
312
``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
313
connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
314
stderr in some other circumstances. (Andrew Bennetts, #633745)
316
* Fix spurious paramiko warning on hardy by ensuring that ``selftest``
317
properly remove its warning filter. (Vincent Ladeuil, #625686)
319
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
320
with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
322
* Most of the leaked threads during selftest are now fixed, allowing the
323
full test suite to pass on gentoo.
324
(Vincent Ladeuil, #392127)
326
* Only call ``setlocale`` in the bzr startup script on posix systems. This
327
avoids an issue with the newer windows C runtimes used by Python 2.6 and
328
later which can mangle bytestrings printed to the console.
329
(Martin [gz], #631350)
331
* `PathNotChild` should not give a traceback.
332
(Martin Pool, #98735)
334
* ``PQM`` will no longer ignore syntax errors in submissions.
335
(Vincent Ladeuil, #626667)
337
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
338
which can result in "missing referenced chk root keys" errors when
339
fetching from repositories with affected revisions.
340
(Andrew Bennetts, #522637)
342
* strace test-helper tests cope with the new Ubuntu policy of not allowing
343
users to attach to their own processes by default.
344
(Martin Pool, #626679)
346
* Test classes like ``TestCase``, ``TestLoader``, and ``TestSuite`` should
347
be available from ``bzrlib.tests.*``. They used to be, but were
348
accidentally removed. (John Arbash Meinel, #627438)
350
* Treat all IO, OS, and socket errors consistently when establishing
351
SSH/SFTP connections via a subprocess. (Andrew Bennetts)
353
* ``Transport.stat`` on a symlink, including a transport pointing directly
354
to a symlink, now returns information about the symlink.
357
* Upgrading or fetching from a non-rich-root repository to a rich-root
358
repository (e.g. from pack-0.92 to 2a) no longer fails with
359
``'Inter1and2Helper' object has no attribute 'source_repo'``.
360
(Andrew Bennetts, #636930)
362
* Wait for the SSH server to actually finish, rather than just waiting for
363
it to negotiate the key exchange. (John Arbash Meinel, #626876)
368
* ``bzr remove`` now just backs up changed files instead of exiting,
369
forcing you to choose to either keep or delete them. Bazaar will now delete
370
the files if they can easily be recovered using revert, otherwise they
371
will be backed up (adding an extention of the form .~#~).
372
(Marius Kruger, #400554)
374
* ``bzr revert`` and ``bzr status`` are up to 15% faster on large trees
375
with many changes by not repeatedly building a list of all file-ids.
378
* Decrease memory consumption when many chk index pages are loaded. (Such
379
as during ``bzr co`` or ``bzr ls -R`` of a large tree.) Often we need to
380
read many chk pages because the individual chk map nodes will be spread
381
randomly. Peak memory for 'bzr ls -R' on a large tree dropped from 396MB
382
down to 247MB, expect even more significant savings on 64-bit platforms.
385
* ``DirState`` internals use a little bit less memory. For bzr.dev it
386
drops the memory from 1MB down to about 800kB. And replaces a few
387
thousand tuples and sets with StaticTuple. (John Arbash Meinel)
389
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
390
have dropped from 68 bytes to 40, and directory entries from 120 bytes
391
to 48). (Andrew Bennetts)
393
* When building new working trees, default to reading from the repository
394
rather than the source tree unless explicitly requested. (via
395
``--files-from`` and ``--hardlink`` for ``bzr branch`` and
396
``bzr checkout``. Generally, 2a format repositories extract
397
content faster than seeking and reading content from another tree,
398
especially in cold-cache situations. (John Arbash Meinel, #607298)
400
* Add ``__pycache__`` to the default ``ignores`` file. Future releases of
401
Python will use this directory to store bytecodes.
402
(Andrea Corbellini, #626687)
407
* Added a builder/writer sphinx extension that can generate texinfo files. The
408
generated files are syntactically correct but the info navigation nodes
409
needs more work. (Vincent Ladeuil, #219334)
411
* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
412
to make the tests conditional.
415
* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
416
the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
417
(John Arbash Meinel, #617503)
419
* Suggest ``bzr revert`` for restoring locally deleted files in help text
420
for ``bzr update``. (John C Barstow, #191466)
425
* Configuration files should now use the ``from_string`` constructor rather
426
than the ``file`` parameter of the ``_get_parser`` method. The later has
427
been deprecated. ``from_string`` also accept a ``save=True`` parameter to
428
have the configuration file immediately written to disk.
431
* Deprecate treating a `PushResult` and `PullResult` as an integer for the
432
relative change in revno.
435
* ``IniBaseConfig`` objects should now use the ``from_string`` constructor
436
the rather than the ``file`` parameter of the ``_get_parser`` method. The
437
later has been deprecated. (Vincent Ladeuil)
439
* InventoryEntry instances now raise AttributeError if you try to assign
440
to attributes that are irrelevant to that kind of entry. e.g. setting
441
``symlink_target`` on an InventoryFile will fail. It is still okay to
442
read those attributes on any kind of InventoryEntry. The complete list
443
of affected attributes is: ``executable``, ``text_id``, ``text_sha1``,
444
``text_size`` (only valid for kind == file); ``symlink_target`` (only
445
valid for kind == link); and ``reference_revision`` (only valid for kind
446
== tree-reference). (Andrew Bennetts)
448
* InventoryEntry objects no longer have ``_put_in_tar`` or
449
``_put_on_disk`` methods. (Andrew Bennetts)
451
* The ``get_filename`` parameter in the ``config.IniBaseConfig``
452
constructor has been deprecated, use the ``file_name`` parameter instead.
458
* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
464
* ``build_tree_contents`` can create symlinks.
465
(Martin Pool, John Arbash Meinel)
467
* Catch socket errors to avoid
468
bt.test_sftp_transport.SSHVendorBadConnection.test_bad_connection_ssh
469
random failures. (Vincent Ladeuil, #601804)
471
* HTTP test servers will leak less threads (and sockets) and will not hang on
472
AIX anymore. (Vincent Ladeuil, #405745)
474
* On platforms that don't support forking give a nice error message saying so
475
when ``bzr selftest --parallel=fork`` is used. (Martin [gz], #528730)
477
* Rearrange thread leak detection code to eliminate global state and make it
478
possible to extend the reporting. (Martin [gz], #633462)
480
* Suppress the "maximum recursion depth exceeded in __subclasscheck__"
481
warning on stderr emitted during ``test_dict_deepnested`` in
482
``bzrlib/tests/test__bencode.py``. (Andrew Bennetts)
484
* The test suite now simply holds log files in memory, rather than writing them
485
out to disk and then reading them back in and deleting them.
488
* The way ``bzr selftest --parallel`` generates N partitions of tests to
489
run in parallel has changed. Instead of splitting the list of tests at
490
N-1 points, it distributes the tests one-by-one into the partitions in a
491
round robin fashion. This reduces the total time to run the tests in
492
parallel because a series of slow tests in the test suite will be
493
distributed evenly among the parallel test suites, rather than slowing
494
down just one suite. (Andrew Bennetts)
496
* Tracebacks from a parameterized test are no longer reported against every
497
parameterization of that test. This was done by adding a hack to
498
``bzrlib.tests.clone_test`` so that it no longer causes
499
testtools.TestCase instances to share a details dict.
500
(Andrew Bennetts, #625574)
506
:2.2.2: NOT RELEASED YET
517
* Skip tests that needs a bzr source tree when there isn't one. This is
518
needed to succesfully run the test suite for installed versions.
519
(Vincent Ladeuil, #644855).
521
* Skip the tests that requires respecting the chmod bits when running as root.
522
(Vincent Ladeuil, #646133)
539
* Fix tests that failed when run under ``LANG=C``.
540
(Andrew Bennetts, #632387)
548
This is a bugfix release which also includes bugfixes from 2.0.6 and
549
2.1.3. None are critical, but upgrading is recommended for all users on
550
earlier 2.2 releases.
555
* Additional merges after an unrelated branch has been merged with its
556
history no longer crash when deleted files are involved.
557
(Vincent Ladeuil, John Arbash Meinel, #375898)
559
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
560
previously-unversioned directory within the tree: the directory is
561
marked versioned too.
562
(Martin Pool, #192859)
564
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
565
target of the symlink.
566
(Martin Pool, John Arbash Meinel, #128562)
568
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
569
permissions as ``.bzr`` directory on a POSIX OS.
570
(Parth Malwankar, #262450)
572
* CommitBuilder now uses the committer instead of _config.username to generate
573
the revision-id. (Aaron Bentley, #614404)
575
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
576
way which should help avoid problems with concurrent writers.
577
(Vincent Ladeuil, #525571)
579
* Cope with Microsoft FTP server that returns reply '250 Directory
580
created' when mkdir succeeds. (Martin Pool, #224373)
582
* Don't traceback trying to unversion children files of an already
583
unversioned directory. (Vincent Ladeuil, #494221)
585
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
586
contains only NUL bytes). Instead warn the user, and allow ``bzr
587
break-lock`` to remove it. (Andrew Bennetts, #619872)
589
* Fix ``AttributeError on parent.children`` when adding a file under a
590
directory that was a symlink in the previous commit.
591
(Martin Pool, #192859)
593
* Fix ``AttributeError: 'NoneType' object has no attribute 'close'`` in
594
``_close_ssh_proc`` when using ``bzr+ssh://``. This was causing
595
connections to pre-1.6 bzr+ssh servers to fail, and causing warnings on
596
stderr in some other circumstances. (Andrew Bennetts, #633745)
598
* Only call ``setlocale`` in the bzr startup script on posix systems. This
599
avoids an issue with the newer windows C runtimes used by Python 2.6 and
600
later which can mangle bytestrings printed to the console.
601
(Martin [gz], #631350)
603
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
604
which can result in "missing referenced chk root keys" errors when
605
fetching from repositories with affected revisions.
606
(Andrew Bennetts, #522637)
608
* Raise ValueError instead of a string exception.
609
(John Arbash Meinel, #586926)
611
* Reduce peak memory by one copy of compressed text.
612
(John Arbash Meinel, #566940)
614
* Repositories accessed via a smart server now reject being stacked on a
615
repository in an incompatible format, as is the case when accessing them
616
via other methods. This was causing fetches from those repositories via
617
a smart server (e.g. using ``bzr branch``) to receive invalid data.
618
(Andrew Bennetts, #562380)
620
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
621
error. This error was caused by 2.0 not being updated when upstream
622
python merged the end of run patch, which chose ``stopTestRun`` rather than
623
``done``. (Robert Collins, #571437)
625
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
626
being thrown from ``xml_serializer`` on certain cElementTree setups.
627
(Martin [gz], #254278)
629
* Upgrading or fetching from a non-rich-root repository to a rich-root
630
repository (e.g. from pack-0.92 to 2a) no longer fails with
631
``'Inter1and2Helper' object has no attribute 'source_repo'``. This was
632
a regression from Bazaar 2.1. (Andrew Bennetts, #636930)
634
* When passing a file to ``UTF8DirReader`` make sure to close the current
635
directory file handle after the chdir fails. Otherwise when passing many
636
filenames into a command line ``bzr status`` we would leak descriptors.
637
(John Arbash Meinel, #583486)
642
* Fix a lot of references in the docs to the old http://bazaar-vcs.org to
643
the new http://bazaar.canonical.com or http://wiki.bazaar.canonical.com
644
(John Arbash Meinel, #617503)
649
* Remove used and broken code path in ``BranchInitHookParams.__repr__``.
655
* ``build_tree_contents`` can create symlinks.
656
(Martin Pool, John Arbash Meinel)
658
* Tracebacks from a parameterized test are no longer reported against every
659
parameterization of that test. This was done by adding a hack to
660
``bzrlib.tests.clone_test`` so that it no longer causes
661
testtools.TestCase instances to share a details dict.
662
(Andrew Bennetts, #625574)
668
:2.1.4: NOT RELEASED YET
679
* Skip tests that needs a bzr source tree when there isn't one. This is
680
needed to succesfully run the test suite for installed versions.
681
(Vincent Ladeuil, #644855).
683
* Skip the tests that requires respecting the chmod bits when running as root.
684
(Vincent Ladeuil, #646133)
705
:Codename: Do run run
708
The third release in our 2.1 series addresses several user-inconvenience bugs
709
(and includes the fixes done in 2.0.6). None are critical, but upgrading is
710
recommended for all users on earlier 2.1 releases.
715
* Additional merges after an unrelated branch has been merged with its
716
history no longer crash when deleted files are involved.
717
(Vincent Ladeuil, John Arbash Meinel, #375898)
719
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
720
previously-unversioned directory within the tree: the directory is
721
marked versioned too.
722
(Martin Pool, #192859)
724
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
725
target of the symlink.
726
(Martin Pool, John Arbash Meinel, #128562)
728
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
729
permissions as ``.bzr`` directory on a POSIX OS.
730
(Parth Malwankar, #262450)
732
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
733
way which should help avoid problems with concurrent writers.
734
(Vincent Ladeuil, #525571)
736
* Don't traceback trying to unversion children files of an already
737
unversioned directory. (Vincent Ladeuil, #494221)
739
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
740
contains only NUL bytes). Instead warn the user, and allow ``bzr
741
break-lock`` to remove it. (Andrew Bennetts, #619872)
743
* Fix ``AttributeError on parent.children`` when adding a file under a
744
directory that was a symlink in the previous commit.
745
(Martin Pool, #192859)
747
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
748
which can result in "missing referenced chk root keys" errors when
749
fetching from repositories with affected revisions.
750
(Andrew Bennetts, #522637)
752
* Raise ValueError instead of a string exception.
753
(John Arbash Meinel, #586926)
755
* Reduce peak memory by one copy of compressed text.
756
(John Arbash Meinel, #566940)
758
* Repositories accessed via a smart server now reject being stacked on a
759
repository in an incompatible format, as is the case when accessing them
760
via other methods. This was causing fetches from those repositories via
761
a smart server (e.g. using ``bzr branch``) to receive invalid data.
762
(Andrew Bennetts, #562380)
764
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
765
error. This error was caused by 2.0 not being updated when upstream
766
python merged the end of run patch, which chose ``stopTestRun`` rather than
767
``done``. (Robert Collins, #571437)
769
* Stop ``AttributeError: 'module' object has no attribute 'ElementTree'``
770
being thrown from ``xml_serializer`` on certain cElementTree setups.
771
(Martin [gz], #254278)
773
* When passing a file to ``UTF8DirReader`` make sure to close the current
774
directory file handle after the chdir fails. Otherwise when passing many
775
filenames into a command line ``bzr status`` we would leak descriptors.
776
(John Arbash Meinel, #583486)
781
* ``build_tree_contents`` can create symlinks.
782
(Martin Pool, John Arbash Meinel)
790
The sixth release in our 2.0 series addresses several user-inconvenience
791
bugs. None are critical, but upgrading is recommended for all users on
792
earlier 2.0 releases.
797
* Additional merges after an unrelated branch has been merged with its
798
history no longer crash when deleted files are involved.
799
(Vincent Ladeuil, John Arbash Meinel, #375898)
801
* ``bzr add SYMLINK/FILE`` now works properly when the symlink points to a
802
previously-unversioned directory within the tree: the directory is
803
marked versioned too.
804
(Martin Pool, #192859)
806
* ``bzr commit SYMLINK`` now works, rather than trying to commit the
807
target of the symlink.
808
(Martin Pool, John Arbash Meinel, #128562)
810
* ``bzr revert`` now only takes write lock on working tree, instead of on
811
both working tree and branch.
812
(Danny van Heumen, #498409)
814
* ``bzr upgrade`` now creates the ``backup.bzr`` directory with the same
815
permissions as ``.bzr`` directory on a POSIX OS.
816
(Parth Malwankar, #262450)
818
* Don't traceback trying to unversion children files of an already
819
unversioned directory. (Vincent Ladeuil, #494221)
821
* Don't traceback when a lockdir's ``held/info`` file is corrupt (e.g.
822
contains only NUL bytes). Instead warn the user, and allow ``bzr
823
break-lock`` to remove it. (Andrew Bennetts, #619872)
825
* Fix ``AttributeError on parent.children`` when adding a file under a
826
directory that was a symlink in the previous commit.
827
(Martin Pool, #192859)
829
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
830
which can result in "missing referenced chk root keys" errors when
831
fetching from repositories with affected revisions.
832
(Andrew Bennetts, #522637)
834
* Raise ValueError instead of a string exception.
835
(John Arbash Meinel, #586926)
837
* Reduce peak memory by one copy of compressed text.
838
(John Arbash Meinel, #566940)
840
* Repositories accessed via a smart server now reject being stacked on a
841
repository in an incompatible format, as is the case when accessing them
842
via other methods. This was causing fetches from those repositories via
843
a smart server (e.g. using ``bzr branch``) to receive invalid data.
844
(Andrew Bennetts, #562380)
846
* Selftest with versions of subunit that support ``stopTestRun`` will no longer
847
error. This error was caused by 2.0 not being updated when upstream
848
python merged the end of run patch, which chose ``stopTestRun`` rather than
849
``done``. (Robert Collins, #571437)
851
* When passing a file to ``UTF8DirReader`` make sure to close the current
852
directory file handle after the chdir fails. Otherwise when passing many
853
filenames into a command line ``bzr status`` we would leak descriptors.
854
(John Arbash Meinel, #583486)
860
* ``build_tree_contents`` can create symlinks.
861
(Martin Pool, John Arbash Meinel)
870
This release marks the start of another long-term-stable series. From
871
here, we will only make bugfix releases on the 2.2 series (2.2.1, etc),
872
while 2.3 will become our new development series. The 2.0 and 2.1 series
873
will also continue to get bugfixes. (Currently 2.0 is planned to be
874
supported for another 6 months.)
876
This is primarily a bugfix and polish release over the 2.1 series, with
877
a large number of bugs fixed (>120), and some performance improvements.
879
There are some compatibility changes in this release. For users of bzrlib
880
as a library, we now request that they call ``bzrlib.initialize`` and use
881
the returned context manager appropriately. For commandline users we no
882
longer guess user identity for ``bzr commit``, users must specify their
883
identity using ``bzr whoami`` (you don't need to specify your identity for
884
readonly operations).
886
Users are encouraged to upgrade from the other stable series.
891
* BzrError subclasses no longer support the name "message" to be used
892
as an argument for __init__ or in _fmt format specification as this
893
breaks in some Python versions. errors.LockError.__init__ argument
894
is now named "msg" instead of earlier "message".
895
(Parth Malwankar, #603461)
897
* The old ``bzr selftest --benchmark`` option has been removed.
898
<https://launchpad.net/bzr-usertest> is an actively-maintained
899
macrobenchmark suite.
905
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
906
``InvalidPattern`` exception error message now shows faulting
908
(Parth Malwankar #300062)
910
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
911
way which should help avoid problems with concurrent writers.
912
(Vincent Ladeuil, #525571)
914
* Don't traceback trying to unversion children files of an already
915
unversioned directory. (Vincent Ladeuil, #494221)
917
* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
918
with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
920
* Progress bars prefer to truncate the text message rather than the
921
counters. The spinner is shown between the network transfer indicator
922
and the progress message. Progress bars are correctly cleared off when
923
they finish. (Martin Pool, #611127)
925
* Recursive binding for checkouts is now detected by bzr. A clear error
926
message is shown to the user. (Parth Malwankar, #405192)
931
* Add ``bzrlib.merge.MergeIntoMerger``, which can merge part or all of a
932
tree, and works with unrelated branches. (Andrew Bennetts)
934
* Add py2exe windows target ``bzrw.exe``. This allow for starting a Bazaar
935
GUI with out have a console open in the background.
936
(Gary van der Merwe, #433781)
941
* ``bzr help patterns`` now explains case insensitive patterns and
942
points to Python regular expression documentation.
943
(Parth Malwankar, #594386)
948
* Delete ``ProgressTask.note``, which was deprecated in 2.1.
953
* Unit test added to ensure that "message" is not uses as a format variable
954
name in BzrError subclasses as this conflicts with some Python versions.
955
(Parth Malwankar, #603461)
960
:Codename: Monkey Magic
964
This fourth and final beta in the 2.2 series now stabilizes the internal
965
APIs. Plugin authors are recommended to ensure their releases are
966
compatible, so that 2.2rc1 can be a true release candidate, containing
967
stable and compatible plugin versions.
969
For users of bzrlib as a library, one of the primary changes is to request
970
that they call ``bzrlib.initialize`` and use the returned context manager
973
Better interaction with ``bzr-loom`` to make sure branching from a loom
974
even over a smart server still yields a local loom. Not to mention lots of
980
* bzrlib library users now need to call ``__enter__`` and ``__exit__`` on
981
the result of ``bzrlib.initialize``. This change was made when fixing
982
the bad habit recent bzr versions have had of leaving progress bars
983
behind on the screen. That required calling another function before
984
exiting the program, and it made sense to provide a full context
985
manager at the same time. (Robert Collins)
987
* The ``bzr`` front end now requires a ``bzrlib.ui.ui_factory`` which is a
988
context manager in the Python 2.5 and above sense. The bzrlib base class
989
is such a manager, but third party UI factories which do not derive from
990
``bzrlib.ui.UIFactory`` will be incompatible with the command line front
993
* URLs like ``foo:bar/baz`` are now always parsed as a URL with scheme "foo"
994
and path "bar/baz", even if bzr does not recognize "foo" as a known URL
995
scheme. Previously these URLs would be treated as local paths.
1002
* Support ``--directory`` option for a number of additional commands:
1003
conflicts, merge-directive, missing, resolve, shelve, switch,
1004
unshelve, whoami. (Martin von Gagern, #527878)
1009
* ``bzr branch`` to a new repository with a default stacking policy no
1010
longer transfers the full history unnecessarily.
1011
(Andrew Bennetts, #597942)
1013
* ``bzr init`` does not recursively scan directory contents anymore
1014
leading to faster init for directories with existing content.
1015
(Martin [gz], Parth Malwankar, #501307)
1017
* ``bzr log --exclude-common-ancestry`` is now taken into account for
1018
linear ancetries. (Vincent Ladeuil, #575631)
1020
* ``bzr log -r branch:REMOTE`` can now properly log the remote branch,
1021
rather than trying to fetch the data locally and failing because of a
1022
readonly error. (Martin von Gagern, #149270)
1024
* ``bzr pull`` now works when a lp: URL is explicitly defined as the parent
1025
or pull location in locations.conf or branch.conf.
1026
(Gordon Tyler, #534787)
1028
* ``bzr reconfigure --unstacked`` now works with branches accessed via a
1029
smart server. (Andrew Bennetts, #551525)
1031
* ``BzrDir.find_branches`` should ignore branches with missing repositories.
1032
(Marius Kruger, Robert Collins)
1034
* ``BzrDir.find_bzrdirs`` should ignore dirs that raises PermissionDenied.
1035
(Marius Kruger, Robert Collins)
1037
* Ensure that wrong path specifications in ``BZR_PLUGINS_AT`` display
1038
proper error messages. (Vincent Ladeuil, #591215)
1040
* Explicitly removing ``--profile-imports`` option from parsed command-line
1041
arguments on Windows, because bzr script does the same.
1042
(Alexander Belchenko, #588277)
1044
* Fetching was slightly confused about the best code to use and was
1045
using a new code path for all branches, resulting in more lookups than
1046
necessary on old branches. (Robert Collins, #593515)
1048
* Final fix for 'no help for command' issue. We now show a clean message
1049
when a command has no help, document how to set help more clearly, and
1050
test that all commands available to the test suite have help.
1051
(Robert Collins, #177500)
1053
* Invalid patterns supplied to ``Globster`` or ``lazy_regex`` now raise
1054
``InvalidPattern`` exception showing clear error message to the user.
1055
(Parth Malwankar #300062)
1057
* Progress output is cleaned up when exiting. (Aaron Bentley)
1059
* Raise ValueError instead of a string exception.
1060
(John Arbash Meinel, #586926)
1062
* Relative imports in plugins are now handled correctly when using
1063
BZR_PLUGINS_AT. (Vincent Ladeuil, #588959)
1065
* ``ScriptRunner`` now strips off leading indentation from test scripts,
1066
which previously caused "SyntaxError: No command for line".
1069
* Show unicode filenames in diff headers using terminal encoding.
1070
(Alexander Belchenko, Bug #382699)
1071
NOTE for Windows users: If user need to save diff to file then user need to
1072
change encoding of the terminal to ANSI encoding with command ``chcp XXX``
1073
(e.g. ``chcp 1251`` for Russian Windows).
1075
* URL displayed for use with ``break-lock`` when smart server sees lock
1076
contention are now valid. Default timeout for lock contention retry is
1077
now 30 seconds instead of 300 seconds.
1078
(Parth Malwankar, #250451)
1080
* ``walkdirs`` now raises a useful message when the filenames are not using
1081
the filesystem encoding. (Eric Moritz, #488519)
1083
* Enable debugging of bzr on windows with pdb and other tools. This was
1084
broken because we call GetCommandLineW on windows. The fix adjusts the
1085
command line we get to be the same length as sys.argv.
1086
(Jason Spashett, Alexander Belchenko, #587868)
1091
* Bazaar now reads data from SSH connections more efficiently on platforms
1092
that provide the ``socketpair`` function, and when using paramiko.
1093
(Andrew Bennetts, #590637)
1095
* ``Branch.copy_content_into`` is now a convenience method dispatching to
1096
a ``InterBranch`` multi-method. This permits ``bzr-loom`` and other
1097
plugins to intercept this even when a ``RemoteBranch`` proxy is in use.
1098
(Robert Collins, #201613)
1100
* ``Branch`` formats can now be loaded lazily by registering a
1101
``MetaDirBranchFormatFactory`` rather than an actual format. This will
1102
cause the named format class to be loaded only when an enumeration of
1103
formats is needed or when the format string for the object is
1104
encountered. (Robert Collins, Jelmer Vernooij)
1106
* The encoding that bzr uses to output things other than file content can
1107
now be overridden via the output_encoding configuration option.
1108
(Martin Pool, #340394)
1110
* Use lazy imports in ``bzrlib/merge.py`` so that plugins like ``news_merge``
1111
do not cause modules to be loaded unnecessarily just because the plugin
1112
registers a merge hook. This improves ``bzr rocks`` time by about 25%
1113
in a default installation (with just the core plugins).
1119
* Added ``regression`` tag to our tags list. (Robert Collins)
1121
* Improved our release checklist to have a bit less churn and leave things
1122
ready-to-go for the next action (including other people doing
1123
development). (Robert Collins)
1125
* Remove obsolete discussion of PQM in documentation about how to
1126
contribute to Bazaar. (Martin Pool, #588444)
1131
* ``bzrlib.branch.InterBranch._get_branch_formats_to_test`` now returns
1132
an iterable of format pairs, rather than just a single pair, permitting
1133
InterBranch objects that work with multiple permutations to be
1134
comprehensively tested. (Robert Collins)
1136
* ``bzrlib.lsprof.profile`` will no longer silently generate bad threaded
1137
profiles when concurrent profile requests are made. Instead the profile
1138
requests will be serialised. Reentrant requests will now deadlock.
1141
* ``bzrlib.knit.KnitSequenceMatcher``, which has been deprecated since
1142
2007, has been deleted. Use ``PatienceSequenceMatcher`` from
1143
``bzrlib.patiencediff`` instead. (Andrew Bennetts)
1145
* ``bzrlib.re_compile_checked`` is now deprecated. Caller should handle
1146
``bzrlib.errors.InvalidPattern`` exception thrown by ``re.match`` in
1147
case the default error message not suitable for the use case.
1150
* ``bzrlib.tests.blackbox.ExternalBase`` is deprecated. It provided only
1151
one method ``check_output``, and we now recommend checking command
1152
output using ``run_script``. (Martin Pool)
1154
* ``bzrlib.transport.ssh.SSHVendor.connect_ssh`` now returns an object
1155
that implements the interface of ``bzrlib.transport.ssh.SSHConnection``.
1156
Third-party implementations of ``SSHVendor`` may need to be updated
1157
accordingly. Similarly, any code using ``SSHConnection`` directly will
1158
need to be updated. (Andrew Bennetts)
1160
* The constructor of ``bzrilb.smart.medium.SmartSSHClientMedium`` has
1161
changed to take an ``SSHParams`` instance (replacing many individual
1162
values). (Andrew Bennetts)
1167
* ``bzrlib.osutils.get_terminal_encoding`` will now only mutter its
1168
selection when explicitly requested; this avoids many duplicate calls
1169
being logged when helpers, wrappers and older code that manually calls
1170
it are executed it is now logged deliberately by the ui setup code.
1173
* Improved ``bzrlib.urlutils`` to handle lp:foo/bar URLs. (Gordon Tyler)
1175
* ``bzrlib._c_static_tuple.StaticTuple`` now implements ``__sizeof__``, so
1176
that ``sys.getsizeof`` and other memory analysis tools will report more
1177
accurate results. (Andrew Bennetts)
1179
* The symbol_versioning module can now cleanup after itself -
1180
``suppress_deprecation_warnings`` now returns a cleanup function.
1186
* Add ``bzrlib.tests.fixtures`` to hold code for setting up objects
1187
to test. (Martin Pool)
1189
* ``test_import_tariff`` now respects BZR_PLUGINS_AT and BZR_PLUGINS_DISABLE.
1190
(Vincent Ladeuil, #595587)
1197
This third beta in the 2.2 series brings with it all the goodness of 2.1.2
1198
and 2.0.6 (though it preceeds 2.0.6 slightly). Of particular note for
1199
users are compatibility fixes with bzr 1.5 and below servers, a hopeful
1200
end to the EINTR errors caused by SIGWINCH interactions, a shiny new
1201
bash completion script and bzr will no longer guess at identity details -
1202
it was too unreliable in reality. Use ``bzr whoami`` on every new install.
1203
For developers we have some API changes which may impact plugins as well
1204
as a bunch of our regular improvements to internal clarity and test
1207
Compatibility Breaks
1208
********************
1210
* An API break has been made to the lock_write method of ``Branch`` and
1211
``Repository`` objects; they now return ``branch.BranchWriteLockResult``
1212
and ``repository.RepositoryWriteLockResult`` objects. This makes
1213
changing the API in future easier and permits some cleaner calling code.
1214
The lock_read method has also changed from having no defined return
1215
value to returning ``LogicalLockResult`` objects.
1218
* ``bzr`` does not try to guess the username as ``username@hostname``
1219
and requires it to be explictly set. This can be set using ``bzr
1220
whoami``. (Parth Malwankar, #549310)
1222
* ``bzrlib.commands.Command`` will now raise ValueError during
1223
construction if there is no __doc__ set. (Note, this will be reverted in
1224
2.2b4) (Robert Collins)
1226
* The source tree no longer contains a contrib/zsh/_bzr completion
1227
script. The new file contrib/zsh/README suggests alternatives.
1228
(Martin von Gagern, #560030)
1233
* ``bzr commit`` accepts ``-p`` (for "patch") as a shorter name for
1235
(Parth Malwankar, #571467)
1237
* ``bzr ignore`` now supports a ``--default-rules`` option that displays
1238
the default ignore rules used by bzr. The flag ``--old-default-rules``
1239
is no longer supported by ``ignore``.
1240
(Parth Malwankar, #538703)
1242
* ``bzr pack`` now supports a ``--clean-obsolete-packs`` option that
1243
can save disk space by deleting obsolete pack files created during the
1245
(Parth Malwankar, #304320)
1247
* New command line option ``--authors`` to ``bzr log`` allows users to
1248
select which of the apparent authors and committer should be
1249
included in the log. Defaults depend on format. (Martin von Gagern, #513322)
1251
* Support ``--directory`` option for a number of additional commands:
1252
added, annotate, bind, cat, cat-revision, clean-tree, deleted,
1253
export, ignore, ignored, lookup-revision, ls, modified, nick,
1254
re-sign, unbind, unknowns.
1255
(Martin von Gagern, #527878)
1257
* The bash_completion plugin from the bzr-bash-completion project has
1258
been merged into the tree. It provides a bash-completion command and
1259
replaces the outdated ``contrib/bash/bzr`` script with a version
1260
using the plugin. (Martin von Gagern, #560030)
1262
* A new transport based on GIO (the gnome i/o library) provides access to
1263
samba shares, webdav using gio+smb and gio+dav. It is also possible to
1264
use gio for some already existing transport methods as gio+file,
1271
* Alias information shown by ``bzr help`` is now accurate. This
1272
was showing an internal object name for some plugin aliases.
1273
(Parth Malwankar, #584650)
1275
* ``.bazaar``, ``.bazaar/bazaar.conf`` and ``.bzr.log`` inherit user and
1276
group ownership from the containing directory. This allow bzr to work
1278
(Martin <gzlist@googlemail.com>, Parth Malwankar, #376388)
1280
* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
1281
support of bzr-externals and scmproj plugins.
1282
(Alexander Belchenko, bug #572098)
1284
* ``bzr ignore`` will no longer add duplicate patterns to .bzrignore.
1285
(Gordon Tyler, #572092)
1287
* ``bzr log --exclude-common-ancestry -r X..Y`` displays the revisions that
1288
are part of Y ancestry but not part of X ancestry (aka the graph
1290
(Vincent Ladeuil, #320119)
1292
* ``bzr lp-propose`` which was switched to use production Launchpad API
1293
servers a few commits ago has been reverted to use edge: there is a
1294
problem with using production which isn't trivially obvious, so we've
1295
filed a bug to track it, and until thats fixed will be using edge.
1296
(Robert Collins, #583667)
1298
* ``bzr rm`` should not refuse to delete directories which contained a file
1299
which has been moved elsewhere in the tree after the previous commit.
1300
(Marius Kruger, Daniel Watkins, #129880)
1302
* ``bzr selftest --parallel=fork`` wait for its children avoiding zombies.
1303
(Vincent Ladeuil, #566670)
1305
* ``bzr selftest`` should not use ui.note() since it's not unicode safe.
1306
(Vincent Ladeuil, #563997)
1308
* CommitBuilder refuses to create revisions whose trees have no root.
1311
* Do not register a SIGWINCH signal handler, instead just poll for the
1312
terminal width as needed. This avoids the "Interrupted System Call"
1313
problems that occur on POSIX with all currently released versions of
1315
(Andrew Bennetts, #583941)
1317
* Don't mention --no-strict when we just issue the warning about unclean trees.
1318
(Vincent Ladeuil, #401599)
1320
* Fixed ``AssertionError`` when accessing smart servers running Bazaar
1321
versions before 1.6.
1322
(Andrew Bennetts, #528041)
1324
* Improved progress bar for fetch (2a format only). Bazaar now shows an
1325
estimate of the number of records to be fetched vs actually fetched.
1326
(Parth Malwankar, #374740, #538868)
1328
* Reduce peak memory by one copy of compressed text.
1329
(John Arbash Meinel, #566940)
1331
* ``RemoteBranch.lock_write`` raises ``ReadOnlyError`` if called during a
1332
read lock, rather than causing an ``AttributeError``.
1333
(Andrew Bennetts, Данило Шеган, #582781)
1335
* Selftest was failing with testtools 0.9.3, which caused an
1336
AssertionError raised from a cleanUp to be reported as a Failure, not an
1337
Error, breaking on of our test hygiene tests.
1338
(Robert Collins, Vincent Ladeuil).
1340
* ``set_user_option`` with a dict on remote branches no longer fails with
1341
an AttributeError. There is a new ``Branch.set_config_option_dict`` RPC
1342
to support this efficiently.
1343
(Andrew Bennetts, #430382)
1345
* Show the filenames when a file rename fails so that the error will be
1346
more comprehensible.
1347
(Martin Pool, #491763)
1349
* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
1350
(John Arbash Meinel, #582656)
1352
* Unicode characters in aliases are now handled correctly and do not cause
1353
UnicodeEncodeError exception. (Parth Malwankar, #529930)
1355
* Unicode commit messages that are the same as a file name no longer cause
1356
UnicodeEncodeError. ``ui.text.show_warning`` now handles unicode
1358
(Parth Malwankar, #563646)
1360
* Using bzr with `lp:` urls behind an http proxy should work.
1361
(Robert Collins, #558343)
1363
* When passing a file to ``UTF8DirReader`` make sure to close the current
1364
directory file handle after the chdir fails. Otherwise when passing many
1365
filenames into a command line ``bzr status`` we would leak descriptors.
1366
(John Arbash Meinel, #583486)
1371
* ``append_revisions_only`` will now be interpreted as a boolean and a
1372
warning emitted if illegal values are used. Note that for projects
1373
that needs to maintain compatibility with previsous bzr versions,
1374
only 'True' and 'False' strings must be used (previous versions of
1375
bzr will interpret all strings differing from 'True'
1376
(case-sensitive) as false.
1377
(Brian de Alwis, Vincent Ladeuil)
1379
* ``bzr ls`` now supports short options for existing long options.
1380
``-k/--kind``, ``-i/--ignored``, ``-u/--unknown`` and ``-0/--null``.
1381
(Parth Malwankar, #181124)
1383
* ``Config.get_user_option_as_bool`` will now warn if a value cannot
1384
be interpreted as a boolean.
1387
* The all-in-one Windows installer will now be built with docstrings stripped
1388
from the library zip, reducing the size and slightly improving cold startup
1389
time. Bundled plugins are unchanged for the moment, but if adding other new
1390
plugins to an all-in-one installation, ensure they are compiled and
1391
installed with -O1 or help may not work. (Martin [gz])
1396
* Added ``bzrlib.merge.PerFileMerger``, a more convenient way to write
1397
some kinds of ``merge_file_content`` hook functions.
1400
* `BzrDir`, `Branch`, `Repository` and `WorkingTree` now all support `user_url`,
1401
`user_transport`, `control_url` and `control_transport` members pointing
1402
respectively to the directory containing the ``.bzr`` control directory,
1403
and to the directory within ``.bzr`` used for the particular component.
1404
All of them inherit from `ControlComponent` which provides default
1408
* Lock methods on ``Tree``, ``Branch`` and ``Repository`` are now
1409
expected to return an object which can be used to unlock them. This reduces
1410
duplicate code when using cleanups. The previous 'tokens's returned by
1411
``Branch.lock_write`` and ``Repository.lock_write`` are now attributes
1412
on the result of the lock_write. ``repository.RepositoryWriteLockResult``
1413
and ``branch.BranchWriteLockResult`` document this. (Robert Collins)
1415
* ``Repository.refresh_data`` may now be called in a write group on
1416
pack-based repositories. Older repositories will still raise an error
1417
in this case. Subclasses of ``Repository`` can still override
1418
``Repository._refresh_data``, but are now responsible for raising
1419
``bzrlib.repository.IsInWriteGroupError`` if they do not support
1420
``refresh_data`` during a write group.
1421
(Andrew Bennetts, #574236)
1426
* ``chk_map._bytes_to_text_key`` is now an optimized function to extract
1427
the (file-id, revision-id) key from a CHKInventory entry. This can
1428
potentially shave 5-10% time off during a large fetch. Related to bug
1429
#562666. (John Arbash Meinel)
1431
* ``log._get_info_for_log_files`` now takes an add_cleanup callable.
1434
* ``_remember_remote_is_before`` no longer raises AssertionError when
1435
suboptimal network behaviour is noticed; instead it just mutters to the
1436
log file (and warns the user if they have set the ``hpss`` debug flag).
1437
This was causing unnecessary aborts for performance bugs that are minor
1439
(Andrew Bennetts, #528041)
1441
* Permit bzr to run under ``python -OO`` which reduces the size of bytecode
1442
files loaded from disk. To ensure docstrings needed for help are never
1443
stripped, the prefix ``__doc__ =`` should now be used.
1444
(Martin <gzlist@googlemail.com>)
1446
* No longer require zlib headers to build extensions, and remove the need
1447
for seperate copy of zlib library on windows.
1448
(John Arbash Meinel, Martin <gzlist@googlemail.com>, #566923)
1453
* Added ``bzrlib.tests.matchers`` as a place to put matchers, along with
1454
our first in-tree matcher. See the module docstring for details.
1457
* ``bzr selftest --parallel=subprocess`` now works correctly on win32.
1458
(Gordon Tyler, #551332)
1460
* Workaround ``Crypto.Random`` check leading to spurious test
1461
failures on Lucid, FreeBSD and gentoo.
1462
(Vincent Ladeuil, #528436)
1464
* New class ``ExecutableFeature`` for checking the availability of
1465
executables on the ``PATH``. Migrated from bash_completion plugin.
1473
This release fixes two critical networking issues with older servers and
1474
with interrupted system call errors when pushing or pulling. We recommend
1475
upgrading to anyone running a 2.1.x version of bzr.
1480
* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
1481
support of bzr-externals and scmproj plugins.
1482
(Alexander Belchenko, bug #572098)
1484
* ``bzr switch`` does not die if a ConfigurableFileMerger is used.
1485
(Aaron Bentley, #559436)
1487
* Do not register a SIGWINCH signal handler, instead just poll for the
1488
terminal width as needed. This avoids the "Interrupted System Call"
1489
problems that occur on POSIX with all currently released versions of
1491
(Andrew Bennetts, #583941)
1493
* Fixed ``AssertionError`` when accessing smart servers running Bazaar
1494
versions before 1.6.
1495
(Andrew Bennetts, #528041)
1497
* Reset ``siginterrupt`` flag to False every time we handle a signal
1498
installed with ``set_signal_handler(..., restart_syscall=True)`` (from
1499
``bzrlib.osutils``. Reduces the likelihood of "Interrupted System Call"
1500
errors compared to registering ``signal.signal`` directly.
1503
* Reduce peak memory by one copy of compressed text.
1504
(John Arbash Meinel, #566940)
1506
* Support Pyrex 0.9.9, required changing how we handle exceptions in Pyrex.
1507
(John Arbash Meinel, #582656)
1509
* When passing a file to ``UTF8DirReader`` make sure to close the current
1510
directory file handle after the chdir fails. Otherwise when passing many
1511
filenames into a command line ``bzr status`` we would leak descriptors.
1512
(John Arbash Meinel, #583486)
1517
* ``_remember_remote_is_before`` no longer raises AssertionError when
1518
suboptimal network behaviour is noticed; instead it just mutters to the
1519
log file (and warns the user if they have set the ``hpss`` debug flag).
1520
This was causing unnecessary aborts for performance bugs that are minor
1522
(Andrew Bennetts, #528041)
1530
This is a somewhat early second beta of the 2.2 series, to fix a python2.4
1531
incompatibility in the 2.2b1 release. It also includes a swag of
1532
performance, usability and correctness improvements: test feedback on all
1533
of these would be welcome.
1539
* ``bzr diff`` now supports a --format option, which can be used to
1540
select alternative diff formats. (Jelmer Vernooij, #555994)
1545
* ``bzr dpush``, ``bzr push`` and ``bzr send`` will now issue a warning
1546
instead of failing when dirty trees are involved. The corresponding
1547
``dpush_strict``, ``push_strict`` and ``send_strict`` should be set to
1548
True explicitly to get the previous behaviour.
1549
(Vincent Ladeuil, #519319)
1551
* ``bzr export`` to tar file does not fail if any parent directory
1552
contains unicode characters. This works around upstream Python bug
1553
http://bugs.python.org/issue8396 .
1554
(Parth Malwankar, #413406)
1556
* ``bzr switch`` does not die if a ConfigurableFileMerger is used.
1557
(Aaron Bentley, #559436)
1559
* ``bzr update`` when a pending merge in the working tree has been merged
1560
into the master branch will no longer claim that old commits have become
1561
pending merges. (Robert Collins, #562079)
1563
* ``bzrlib.mutabletree.MutableTree.commit`` will now support a passed in
1564
config as in previous versions of bzrlib. (Robert Collins)
1566
* Fix glitch in the warning about unclean trees display.
1567
(Vincent Ladeuil, #562665)
1569
* Fixed Python2.4 incompatibilities in the bzr2.2b1 source tarball.
1572
* Help messages generated by ``RegistryOption.from_kwargs`` list the
1573
switches in alphabetical order, rather than in an undefined order.
1574
(Martin von Gagern, #559409)
1576
* Make sure the ``ExecutablePath`` and ``InterpreterPath`` are set in
1577
Apport crash reports, to avoid "This problem report applies to a program
1578
which is not installed any more" error.
1579
(Martin Pool, James Westby, #528114)
1581
* Reset ``siginterrupt`` flag to False every time we handle a signal
1582
installed with ``set_signal_handler(..., restart_syscall=True)`` (from
1583
``bzrlib.osutils``. Reduces the likelihood of "Interrupted System Call"
1584
errors compared to registering ``signal.signal`` directly.
1587
* When invoked with a range revision, ``bzr log`` doesn't show revisions
1588
that are not part of the Y revisions ancestry anymore when invoked with
1590
(Vincent Ladeuil, #474807)
1592
* Properly handle ``param_name`` attribute for ``ListOption``.
1593
(Martin von Gagern, #387117)
1598
* ``bzr commit`` will prompt before using a commit message that was
1599
generated by a template and not edited by the user.
1600
(Robert Collins, #530265)
1602
* ``bzr diff`` read-locks the trees and branches only once, saving about
1603
10-20ms on ``bzr diff`` in a bzr.dev tree.
1606
* ``bzr missing`` read-locks the branches only once.
1609
* ``bzr pull`` locks the branches and tree only once.
1612
* Index lookups in pack repositories search recently hit pack files first.
1613
In repositories with many pack files this can greatly reduce the
1614
number of files accessed, the number of bytes read, and the number of
1615
read calls. An incremental pull via plain HTTP takes half the time and
1616
bytes for a moderately large repository. (Andrew Bennetts)
1618
* Index lookups only re-order the indexes when the hit files aren't
1619
already first. Reduces the cost of reordering
1620
(John Arbash Meinel, #562429)
1622
* Less code is loaded at startup. (Cold-cache start time is about 10-20%
1624
(Martin Pool, #553017)
1629
* ``bzrlib.diff.get_trees_and_branches_to_diff`` is deprecated. Use
1630
``get_trees_and_branches_to_diff_locked`` instead.
1633
* ``TreeTransform.commit`` supports the full set of commit parameters, and
1634
auto-determines branch nick if not supplied. (Aaron Bentley)
1639
* ``bzrlib.commands.Command.run_direct`` is no longer needed - the pre
1640
2.1 method of calling run() to perform testing or direct use via the API
1641
is now possible again. As part of this, the _operation attribute on
1642
Command is now transient and only exists for the duration of ``run()``.
1650
This is the first beta of the 2.2 series, leading up to a 2.2.0
1651
release in July or August. Beta releases are suitable for everyday use
1652
but may cause some incompatibilities with plugins. Some plugins may need
1653
small updates to work with 2.2b1.
1655
2.2b1 includes some changes to make merge conflicts easier to understand
1656
and resolve. It also removes some old unnecessary code, and loads
1657
somewhat less code at startup. It starts adding a common infrastructure
1658
for dealing with colocated named branches, which can be implemented in
1659
various ways in either bzr native or foreign formats. On Ubuntu and
1660
other platforms with the apport bug-reporting library, there's an easier
1661
path to report problems with bzr. We plan to continue with these themes
1662
through the 2.2 series.
1664
Over thirty bugs have been fixed, including in the log command, exporting
1665
to tarballs, restarting interrupted system calls, portability of compiled
1666
extensions, making backups during upgrade, and locking on ftp.
1668
Compatibility Breaks
1669
********************
1671
* BTreeGraphIndex can now take an offset to indicate that the data starts
1672
somewhere other than then beginning of the file. (John Arbash Meinel)
17
1674
* Deleted very old hidden commands ``versionedfile-list``,
18
1675
``weave-plan-merge``, ``weave-merge-text``.