26
26
.. Improvements to existing commands, especially improved performance
27
27
or memory usage, or better results.
29
* Resolve ``lp:FOO`` urls locally rather than doing an XMLRPC request if
30
the user has done ``bzr launchpad-login``. The bzr+ssh URLs were already
31
being handed off to the remote server anyway (xmlrpc has been mapping
32
``lp:bzr`` to ``bzr+ssh://bazaar.launchpad.net/+branch/bzr``, rather
33
than ``bzr+ssh://bazaar.launchpad.net/~bzr-pqm/bzr/bzr.dev`` for a few
34
months now.) By doing it ourselves, we can cut out substantial startup
35
time. From Netherlands to London it was taking 368ms to do the XMLRPC
36
call as much as 2s from Sydney. You can test the local logic by using
37
``-Dlaunchpad``. (John Arbash Meinel, #397739)
32
42
.. Fixes for situations where bzr would previously crash or give incorrect
33
43
or undesirable results.
45
* ``bzrlib.log._DEFAULT_REQUEST_PARAMS`` is no longer accidentally
46
mutated by ``bzrlib.log._apply_log_request_defaults``. In practice
47
these default values aren't relied on very often so this probably
48
wasn't causing any trouble. (Andrew Bennetts)
50
* ``bzr log`` now works on revisions which are not in the current branch.
53
* Lazy hooks are now reset between test runs. (Jelmer Vernooij, #745566)
55
* Standalone bzr.exe installation on Windows: user can put additional python
56
libraries into ``site-packages`` subdirectory of the installation directory,
57
this might be required for "installing" extra dependencies for some plugins.
58
(Alexander Belchenko, #743256)
60
* ``TreeTransform.create_file/new_file`` can now take an optional ``sha1``
61
parameter. If supplied, when the transform is applied, it will then call
62
``self._tree._observed_sha1`` for those files. This lets us update the
63
hash-cache for content that we create, preventing us from re-reading the
64
content in the next ``bzr status``. (John Arbash Meinel, #740932)
38
.. Improved or updated documentation.
69
* Added a section about using a shared SSH account on a server for bzr+ssh
70
access. (Russell Smith)
43
75
.. Changes that may require updates in plugins or other code that uses
78
* ``Hooks.create_hook`` is now deprecated in favour of ``Hooks.add_hook``.
81
* If you call `bzrlib.initialize` but forget to enter the resulting object
82
as a context manager, bzrlib will now be initialized anyhow.
83
(Previously simple programs calling bzrlib might find the library was
87
* New method ``Hooks.uninstall_named_hook``. (Jelmer Vernooij, #301472)
89
* The ``revno`` parameter of ``log.LogRevision`` may now be None,
90
representing a revision which is not in the current branch.
49
96
.. Major internal changes, unlikely to be visible to users or plugin
50
97
developers, but interesting for bzr developers.
99
* Added ``osutils.lstat`` and ``osutils.fstat``. These are just the ``os``
100
functions on Linux, but they are wrapped on Windows so that fstat
101
matches lstat results across all python versions.
104
* ``WorkingTree._observed_sha1`` also updates the 'size' column. It
105
happened to be updated as a side-effect of commit, but if we start using
106
the function elsewhere we might as well do it directly.
122
179
* ``bzr export`` can now create ``.tar.xz`` and ``.tar.lzma`` files.
123
180
(Jelmer Vernooij, #551714)
182
* Getting all entries from ``CHKInventory.iter_entries_by_dir()`` has been
183
sped up dramatically for large trees. Iterating by dir is not the best
184
way to load data from a CHK inventory, so it preloads all the items in
185
the correct order. (With the gcc-tree, this changes it (re)reading 8GB
186
of CHK data, down to just 150MB.) This has noticeable affects for things
187
like building checkouts, etc. (John Arbash Meinel, #737234)
196
260
* On Python 2.6 and higher, use multiprocessing.cpu_count() to retrieve the
197
261
number of available processors. (Jelmer Vernooij, #693140)
199
* ``bzr log`` now works on revisions which are not in the current branch.
200
(Matt Giuca, #241998)
205
* Added ``Branch.heads_to_fetch`` method. Implementions of the Branch API
266
* Added ``Branch.heads_to_fetch`` method. Implementations of the Branch API
206
267
must now inherit or implement this method. (Andrew Bennetts, #721328)
208
269
* Added ``bzrlib.mergetools`` module with helper functions for working with
226
287
``import_last_revision_info_and_tags`` method instead.
227
288
(Andrew Bennetts)
290
* Because it was too specific to BzrDir implementations,
291
``ControlDir.sprout`` no longer has a default implementation; it now
292
raises ``NotImplementedError``. (Jelmer Vernooij, #717937)
229
294
* ``ControlDirFormat.register_format`` has been removed. Instead,
230
295
``Prober`` implementations should now implement a ``known_formats``
231
296
method. (Jelmer Vernooij)
298
* ControlDirFormats can now provide a ``check_status`` method and
299
raise a custom exception or warning when an unsupported or deprecated
300
format is being opened. (Jelmer Vernooij, #731311)
233
302
* ``bzrlib.revionspec.dwim_revspecs`` is deprecated.
234
303
Use ``bzrlib.revisionspec.RevisionSpec_dwim.append_possible_revspec`` and
235
304
``bzrlib.revisionspec.RevisionSpec_dwim.append_possible_lazy_revspec``
278
347
(``bzrlib.working_tree.format_registry``) rather than using the class
279
348
methods on ``WorkingTreeFormat``. (Jelmer Vernooij, #714730)
281
* The ``revno`` parameter of ``log.LogRevision`` may now be None,
282
representing a revision which is not in the current branch.
283
(Matt Giuca, #241998)
288
353
* ``CatchingExceptionThread`` (formerly ThreadWithException) has been moved
289
354
out of the ``bzrlib.tests`` hierarchy to make it clearer that it can be used
290
355
outside of tests. This class makes it easier to track exceptions in threads
291
by cacthing them so they can be re-raised in the controlling thread. It's
356
by catching them so they can be re-raised in the controlling thread. It's
292
357
available in the ``bzrlib.cethread`` module. (Vincent Ladeuil)
359
* Correctly propogate malloc failures from diff-delta.c code as MemoryError
360
so OOM conditions during groupcompress are clearly reported. This entailed a
361
change to several function signatures. (Martin [gz], #633336)
294
363
* ``HookPoint.lazy_hook`` and ``Hooks.install_named_lazy_hook`` can install
295
364
hooks for which the callable is loaded lazily. (Jelmer Vernooij)