5
5
.. contents:: List of Releases
12
:2.3b1: NOT RELEASED YET
17
* BzrError subclasses no longer support the name "message" to be used
18
as an argument for __init__ or in _fmt format specification as this
19
breaks in some Python versions. errors.LockError.__init__ argument
20
is now named "msg" instead of earlier "message".
21
(Parth Malwankar, #603461)
23
* `FileInWrongBranch` is deprecated in favour of `PathNotChild` and no
27
* `tree_files` and `internal_tree_files` are now deprecated in favor of
28
`WorkingTree.open_containing_paths`.
31
* The old ``bzr selftest --benchmark`` option has been removed.
32
<https://launchpad.net/bzr-usertest> is an actively-maintained
39
* The ``lp:`` prefix will now use your known username (from
40
``bzr launchpad-login``) to expand ``~`` to your username. For example:
41
``bzr launchpad-login user && bzr push lp:~/project/branch`` will now
42
push to ``lp:~user/project/branch``. (John Arbash Meinel)
47
* Check if both --diff-options and --using are set, and exit with error
48
in this case. (Matthäus G. Chajdas, #234708)
50
* Don't print internal object name when print an invalid revision spec
51
error. (Neil Martinsen-Burrell, #598701)
53
* ``HTTP/1.1` test servers now set a ``Content-Length`` header to comply
54
with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
56
* `PathNotChild` should not give a traceback.
59
* Prevent ``CHKMap.apply_delta`` from generating non-canonical CHK maps,
60
which can result in "missing referenced chk root keys" errors when
61
fetching from repositories with affected revisions.
62
(Andrew Bennetts, #522637)
64
* ``Transport.stat`` on a symlink, including a transport pointing directly
65
to a symlink, now returns information about the symlink.
71
* Inventory entries now consume less memory (on 32-bit Ubuntu file entries
72
have dropped from 68 bytes to 40, and directory entries from 120 bytes
73
to 48). (Andrew Bennetts)
75
* When building new working trees, default to reading from the repository
76
rather than the source tree unless explicitly requested. (via
77
``--files-from`` and ``--hardlink`` for ``bzr branch`` and
78
``bzr checkout``. Generally, 2a format repositories extract
79
content faster than seeking and reading content from another tree,
80
especially in cold-cache situations. (John Arbash Meinel, #607298)
85
* First tests defined for sphinx, including a new bzrlib.tests.features.sphinx
86
to make the tests conditional.
89
* Added a builder/writer sphinx extension that can generate texinfo files. The
90
generated files are syntactically correct but the info navigation nodes
91
needs more work. (Vincent Ladeuil, #219334)
97
* InventoryEntry instances now raise AttributeError if you try to assign
98
to attributes that are irrelevant to that kind of entry. e.g. setting
99
``symlink_target`` on an InventoryFile will fail. It is still okay to
100
read those attributes on any kind of InventoryEntry. The complete list
101
of affected attributes is: ``executable``, ``text_id``, ``text_sha1``,
102
``text_size`` (only valid for kind == file); ``symlink_target`` (only
103
valid for kind == link); and ``reference_revision`` (only valid for kind
104
== tree-reference). (Andrew Bennetts)
112
* The way ``bzr selftest --parallel`` generates N partitions of tests to
113
run in parallel has changed. Instead of splitting the list of tests at
114
N-1 points, it distributes the tests one-by-one into the partitions in a
115
round robin fashion. This reduces the total time to run the tests in
116
parallel because a series of slow tests in the test suite will be
117
distributed evenly among the parallel test suites, rather than slowing
118
down just one suite. (Andrew Bennetts)
127
This release marks the start of another long-term-stable series. From
128
here, we will only make bugfix releases on the 2.2 series (2.2.1, etc),
129
while 2.3 will become our new development series. The 2.0 and 2.1 series
130
will also continue to get bugfixes. (Currently 2.0 is planned to be
131
supported for another 6 months.)
133
This is primarily a bugfix and polish release over the 2.1 series, with
134
a large number of bugs fixed (>120), and some performance improvements.
136
There are some compatibility changes in this release. For users of bzrlib
137
as a library, we now request that they call ``bzrlib.initialize`` and use
138
the returned context manager appropriately. For commandline users we no
139
longer guess user identity for ``bzr commit``, users must specify their
140
identity using ``bzr whoami`` (you don't need to specify your identity for
141
readonly operations).
143
Users are encouraged to upgrade from the other stable series.
148
* BzrError subclasses no longer support the name "message" to be used
149
as an argument for __init__ or in _fmt format specification as this
150
breaks in some Python versions. errors.LockError.__init__ argument
151
is now named "msg" instead of earlier "message".
152
(Parth Malwankar, #603461)
154
* The old ``bzr selftest --benchmark`` option has been removed.
155
<https://launchpad.net/bzr-usertest> is an actively-maintained
156
macrobenchmark suite.
162
* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
163
``InvalidPattern`` exception error message now shows faulting
165
(Parth Malwankar #300062)
167
* Configuration files in ``${BZR_HOME}`` are now written in an atomic
168
way which should help avoid problems with concurrent writers.
169
(Vincent Ladeuil, #525571)
171
* Don't traceback trying to unversion children files of an already
172
unversioned directory. (Vincent Ladeuil, #494221)
174
* ``HTTP/1.1` test servers now set a ``Content-Length`` header to comply
175
with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)
177
* Progress bars prefer to truncate the text message rather than the
178
counters. The spinner is shown between the network transfer indicator
179
and the progress message. Progress bars are correctly cleared off when
180
they finish. (Martin Pool, #611127)
182
* Recursive binding for checkouts is now detected by bzr. A clear error
183
message is shown to the user. (Parth Malwankar, #405192)
188
* Add ``bzrlib.merge.MergeIntoMerger``, which can merge part or all of a
189
tree, and works with unrelated branches. (Andrew Bennetts)
191
* Add py2exe windows target ``bzrw.exe``. This allow for starting a Bazaar
192
GUI with out have a console open in the background.
193
(Gary van der Merwe, #433781)
198
* ``bzr help patterns`` now explains case insensitive patterns and
199
points to Python regular expression documentation.
200
(Parth Malwankar, #594386)
205
* Delete ``ProgressTask.note``, which was deprecated in 2.1.
210
* Unit test added to ensure that "message" is not uses as a format variable
211
name in BzrError subclasses as this conflicts with some Python versions.
212
(Parth Malwankar, #603461)
217
:Codename: Monkey Magic
221
This fourth and final beta in the 2.2 series now stabilizes the internal
222
APIs. Plugin authors are recommended to ensure their releases are
223
compatible, so that 2.2rc1 can be a true release candidate, containing
224
stable and compatible plugin versions.
226
For users of bzrlib as a library, one of the primary changes is to request
227
that they call ``bzrlib.initialize`` and use the returned context manager
230
Better interaction with ``bzr-loom`` to make sure branching from a loom
231
even over a smart server still yields a local loom. Not to mention lots of
237
* bzrlib library users now need to call ``__enter__`` and ``__exit__`` on
238
the result of ``bzrlib.initialize``. This change was made when fixing
239
the bad habit recent bzr versions have had of leaving progress bars
240
behind on the screen. That required calling another function before
241
exiting the program, and it made sense to provide a full context
242
manager at the same time. (Robert Collins)
244
* The ``bzr`` front end now requires a ``bzrlib.ui.ui_factory`` which is a
245
context manager in the Python 2.5 and above sense. The bzrlib base class
246
is such a manager, but third party UI factories which do not derive from
247
``bzrlib.ui.UIFactory`` will be incompatible with the command line front
250
* URLs like ``foo:bar/baz`` are now always parsed as a URL with scheme "foo"
251
and path "bar/baz", even if bzr does not recognize "foo" as a known URL
252
scheme. Previously these URLs would be treated as local paths.
259
* Support ``--directory`` option for a number of additional commands:
260
conflicts, merge-directive, missing, resolve, shelve, switch,
261
unshelve, whoami. (Martin von Gagern, #527878)
266
* ``bzr branch`` to a new repository with a default stacking policy no
267
longer transfers the full history unnecessarily.
268
(Andrew Bennetts, #597942)
270
* ``bzr init`` does not recursively scan directory contents anymore
271
leading to faster init for directories with existing content.
272
(Martin [gz], Parth Malwankar, #501307)
274
* ``bzr log --exclude-common-ancestry`` is now taken into account for
275
linear ancetries. (Vincent Ladeuil, #575631)
277
* ``bzr log -r branch:REMOTE`` can now properly log the remote branch,
278
rather than trying to fetch the data locally and failing because of a
279
readonly error. (Martin von Gagern, #149270)
281
* ``bzr pull`` now works when a lp: URL is explicitly defined as the parent
282
or pull location in locations.conf or branch.conf.
283
(Gordon Tyler, #534787)
285
* ``bzr reconfigure --unstacked`` now works with branches accessed via a
286
smart server. (Andrew Bennetts, #551525)
288
* ``BzrDir.find_branches`` should ignore branches with missing repositories.
289
(Marius Kruger, Robert Collins)
291
* ``BzrDir.find_bzrdirs`` should ignore dirs that raises PermissionDenied.
292
(Marius Kruger, Robert Collins)
294
* Ensure that wrong path specifications in ``BZR_PLUGINS_AT`` display
295
proper error messages. (Vincent Ladeuil, #591215)
297
* Explicitly removing ``--profile-imports`` option from parsed command-line
298
arguments on Windows, because bzr script does the same.
299
(Alexander Belchenko, #588277)
301
* Fetching was slightly confused about the best code to use and was
302
using a new code path for all branches, resulting in more lookups than
303
necessary on old branches. (Robert Collins, #593515)
305
* Final fix for 'no help for command' issue. We now show a clean message
306
when a command has no help, document how to set help more clearly, and
307
test that all commands available to the test suite have help.
308
(Robert Collins, #177500)
310
* Invalid patterns supplied to ``Globster`` or ``lazy_regex`` now raise
311
``InvalidPattern`` exception showing clear error message to the user.
312
(Parth Malwankar #300062)
314
* Progress output is cleaned up when exiting. (Aaron Bentley)
316
* Raise ValueError instead of a string exception.
317
(John Arbash Meinel, #586926)
319
* Relative imports in plugins are now handled correctly when using
320
BZR_PLUGINS_AT. (Vincent Ladeuil, #588959)
322
* ``ScriptRunner`` now strips off leading indentation from test scripts,
323
which previously caused "SyntaxError: No command for line".
326
* Show unicode filenames in diff headers using terminal encoding.
327
(Alexander Belchenko, Bug #382699)
328
NOTE for Windows users: If user need to save diff to file then user need to
329
change encoding of the terminal to ANSI encoding with command ``chcp XXX``
330
(e.g. ``chcp 1251`` for Russian Windows).
332
* URL displayed for use with ``break-lock`` when smart server sees lock
333
contention are now valid. Default timeout for lock contention retry is
334
now 30 seconds instead of 300 seconds.
335
(Parth Malwankar, #250451)
337
* ``walkdirs`` now raises a useful message when the filenames are not using
338
the filesystem encoding. (Eric Moritz, #488519)
340
* Enable debugging of bzr on windows with pdb and other tools. This was
341
broken because we call GetCommandLineW on windows. The fix adjusts the
342
command line we get to be the same length as sys.argv.
343
(Jason Spashett, Alexander Belchenko, #587868)
348
* Bazaar now reads data from SSH connections more efficiently on platforms
349
that provide the ``socketpair`` function, and when using paramiko.
350
(Andrew Bennetts, #590637)
352
* ``Branch.copy_content_into`` is now a convenience method dispatching to
353
a ``InterBranch`` multi-method. This permits ``bzr-loom`` and other
354
plugins to intercept this even when a ``RemoteBranch`` proxy is in use.
355
(Robert Collins, #201613)
357
* ``Branch`` formats can now be loaded lazily by registering a
358
``MetaDirBranchFormatFactory`` rather than an actual format. This will
359
cause the named format class to be loaded only when an enumeration of
360
formats is needed or when the format string for the object is
361
encountered. (Robert Collins, Jelmer Vernooij)
363
* The encoding that bzr uses to output things other than file content can
364
now be overridden via the output_encoding configuration option.
365
(Martin Pool, #340394)
367
* Use lazy imports in ``bzrlib/merge.py`` so that plugins like ``news_merge``
368
do not cause modules to be loaded unnecessarily just because the plugin
369
registers a merge hook. This improves ``bzr rocks`` time by about 25%
370
in a default installation (with just the core plugins).
376
* Added ``regression`` tag to our tags list. (Robert Collins)
378
* Improved our release checklist to have a bit less churn and leave things
379
ready-to-go for the next action (including other people doing
380
development). (Robert Collins)
382
* Remove obsolete discussion of PQM in documentation about how to
383
contribute to Bazaar. (Martin Pool, #588444)
388
* ``bzrlib.branch.InterBranch._get_branch_formats_to_test`` now returns
389
an iterable of format pairs, rather than just a single pair, permitting
390
InterBranch objects that work with multiple permutations to be
391
comprehensively tested. (Robert Collins)
393
* ``bzrlib.lsprof.profile`` will no longer silently generate bad threaded
394
profiles when concurrent profile requests are made. Instead the profile
395
requests will be serialised. Reentrant requests will now deadlock.
398
* ``bzrlib.knit.KnitSequenceMatcher``, which has been deprecated since
399
2007, has been deleted. Use ``PatienceSequenceMatcher`` from
400
``bzrlib.patiencediff`` instead. (Andrew Bennetts)
402
* ``bzrlib.re_compile_checked`` is now deprecated. Caller should handle
403
``bzrlib.errors.InvalidPattern`` exception thrown by ``re.match`` in
404
case the default error message not suitable for the use case.
407
* ``bzrlib.tests.blackbox.ExternalBase`` is deprecated. It provided only
408
one method ``check_output``, and we now recommend checking command
409
output using ``run_script``. (Martin Pool)
411
* ``bzrlib.transport.ssh.SSHVendor.connect_ssh`` now returns an object
412
that implements the interface of ``bzrlib.transport.ssh.SSHConnection``.
413
Third-party implementations of ``SSHVendor`` may need to be updated
414
accordingly. Similarly, any code using ``SSHConnection`` directly will
415
need to be updated. (Andrew Bennetts)
417
* The constructor of ``bzrilb.smart.medium.SmartSSHClientMedium`` has
418
changed to take an ``SSHParams`` instance (replacing many individual
419
values). (Andrew Bennetts)
424
* ``bzrlib.osutils.get_terminal_encoding`` will now only mutter its
425
selection when explicitly requested; this avoids many duplicate calls
426
being logged when helpers, wrappers and older code that manually calls
427
it are executed it is now logged deliberately by the ui setup code.
430
* Improved ``bzrlib.urlutils`` to handle lp:foo/bar URLs. (Gordon Tyler)
432
* ``bzrlib._c_static_tuple.StaticTuple`` now implements ``__sizeof__``, so
433
that ``sys.getsizeof`` and other memory analysis tools will report more
434
accurate results. (Andrew Bennetts)
436
* The symbol_versioning module can now cleanup after itself -
437
``suppress_deprecation_warnings`` now returns a cleanup function.
443
* Add ``bzrlib.tests.fixtures`` to hold code for setting up objects
444
to test. (Martin Pool)
446
* ``test_import_tariff`` now respects BZR_PLUGINS_AT and BZR_PLUGINS_DISABLE.
447
(Vincent Ladeuil, #595587)
11
:2.2b3: NOT RELEASED YET
454
This third beta in the 2.2 series brings with it all the goodness of 2.1.2
455
and 2.0.6 (though it preceeds 2.0.6 slightly). Of particular note for
456
users are compatibility fixes with bzr 1.5 and below servers, a hopeful
457
end to the EINTR errors caused by SIGWINCH interactions, a shiny new
458
bash completion script and bzr will no longer guess at identity details -
459
it was too unreliable in reality. Use ``bzr whoami`` on every new install.
460
For developers we have some API changes which may impact plugins as well
461
as a bunch of our regular improvements to internal clarity and test
13
464
Compatibility Breaks
14
465
********************
467
* An API break has been made to the lock_write method of ``Branch`` and
468
``Repository`` objects; they now return ``branch.BranchWriteLockResult``
469
and ``repository.RepositoryWriteLockResult`` objects. This makes
470
changing the API in future easier and permits some cleaner calling code.
471
The lock_read method has also changed from having no defined return
472
value to returning ``LogicalLockResult`` objects.
475
* ``bzr`` does not try to guess the username as ``username@hostname``
476
and requires it to be explictly set. This can be set using ``bzr
477
whoami``. (Parth Malwankar, #549310)
479
* ``bzrlib.commands.Command`` will now raise ValueError during
480
construction if there is no __doc__ set. (Note, this will be reverted in
481
2.2b4) (Robert Collins)
483
* The source tree no longer contains a contrib/zsh/_bzr completion
484
script. The new file contrib/zsh/README suggests alternatives.
485
(Martin von Gagern, #560030)
31
502
(Parth Malwankar, #304320)
504
* New command line option ``--authors`` to ``bzr log`` allows users to
505
select which of the apparent authors and committer should be
506
included in the log. Defaults depend on format. (Martin von Gagern, #513322)
508
* Support ``--directory`` option for a number of additional commands:
509
added, annotate, bind, cat, cat-revision, clean-tree, deleted,
510
export, ignore, ignored, lookup-revision, ls, modified, nick,
511
re-sign, unbind, unknowns.
512
(Martin von Gagern, #527878)
514
* The bash_completion plugin from the bzr-bash-completion project has
515
been merged into the tree. It provides a bash-completion command and
516
replaces the outdated ``contrib/bash/bzr`` script with a version
517
using the plugin. (Martin von Gagern, #560030)
519
* A new transport based on GIO (the gnome i/o library) provides access to
520
samba shares, webdav using gio+smb and gio+dav. It is also possible to
521
use gio for some already existing transport methods as gio+file,
528
* Alias information shown by ``bzr help`` is now accurate. This
529
was showing an internal object name for some plugin aliases.
530
(Parth Malwankar, #584650)
36
532
* ``.bazaar``, ``.bazaar/bazaar.conf`` and ``.bzr.log`` inherit user and
37
533
group ownership from the containing directory. This allow bzr to work
39
535
(Martin <gzlist@googlemail.com>, Parth Malwankar, #376388)
537
* ``bzr clean-tree`` should not delete nested bzrdirs. Required for proper
538
support of bzr-externals and scmproj plugins.
539
(Alexander Belchenko, bug #572098)
541
* ``bzr ignore`` will no longer add duplicate patterns to .bzrignore.
542
(Gordon Tyler, #572092)
41
544
* ``bzr log --exclude-common-ancestry -r X..Y`` displays the revisions that
42
545
are part of Y ancestry but not part of X ancestry (aka the graph
44
547
(Vincent Ladeuil, #320119)
549
* ``bzr lp-propose`` which was switched to use production Launchpad API
550
servers a few commits ago has been reverted to use edge: there is a
551
problem with using production which isn't trivially obvious, so we've
552
filed a bug to track it, and until thats fixed will be using edge.
553
(Robert Collins, #583667)
555
* ``bzr rm`` should not refuse to delete directories which contained a file
556
which has been moved elsewhere in the tree after the previous commit.
557
(Marius Kruger, Daniel Watkins, #129880)
46
559
* ``bzr selftest --parallel=fork`` wait for its children avoiding zombies.
47
560
(Vincent Ladeuil, #566670)
49
562
* ``bzr selftest`` should not use ui.note() since it's not unicode safe.
50
563
(Vincent Ladeuil, #563997)
565
* CommitBuilder refuses to create revisions whose trees have no root.
568
* Do not register a SIGWINCH signal handler, instead just poll for the
569
terminal width as needed. This avoids the "Interrupted System Call"
570
problems that occur on POSIX with all currently released versions of
572
(Andrew Bennetts, #583941)
52
574
* Don't mention --no-strict when we just issue the warning about unclean trees.
53
575
(Vincent Ladeuil, #401599)