bzr 2.2b2 ######### :2.2b2: 2010-04-16 This is a somewhat early second beta of the 2.2 series, to fix a python2.4 incompatibility in the 2.2b1 release. It also includes a swag of performance, usability and correctness improvements: test feedback on all of these would be welcome. New Features ************ * ``bzr diff`` now supports a --format option, which can be used to select alternative diff formats. (Jelmer Vernooij, #555994) Bug Fixes ********* * ``bzr dpush``, ``bzr push`` and ``bzr send`` will now issue a warning instead of failing when dirty trees are involved. The corresponding ``dpush_strict``, ``push_strict`` and ``send_strict`` should be set to True explicitly to get the previous behaviour. (Vincent Ladeuil, #519319) * ``bzr export`` to tar file does not fail if any parent directory contains unicode characters. This works around upstream Python bug http://bugs.python.org/issue8396 . (Parth Malwankar, #413406) * ``bzr switch`` does not die if a ConfigurableFileMerger is used. (Aaron Bentley, #559436) * ``bzr update`` when a pending merge in the working tree has been merged into the master branch will no longer claim that old commits have become pending merges. (Robert Collins, #562079) * ``bzrlib.mutabletree.MutableTree.commit`` will now support a passed in config as in previous versions of bzrlib. (Robert Collins) * Fix glitch in the warning about unclean trees display. (Vincent Ladeuil, #562665) * Fixed Python2.4 incompatibilities in the bzr2.2b1 source tarball. (Martin Pool) * Help messages generated by ``RegistryOption.from_kwargs`` list the switches in alphabetical order, rather than in an undefined order. (Martin von Gagern, #559409) * Make sure the ``ExecutablePath`` and ``InterpreterPath`` are set in Apport crash reports, to avoid "This problem report applies to a program which is not installed any more" error. (Martin Pool, James Westby, #528114) * Reset ``siginterrupt`` flag to False every time we handle a signal installed with ``set_signal_handler(..., restart_syscall=True)`` (from ``bzrlib.osutils``. Reduces the likelihood of "Interrupted System Call" errors compared to registering ``signal.signal`` directly. (Andrew Bennetts) * When invoked with a range revision, ``bzr log`` doesn't show revisions that are not part of the Y revisions ancestry anymore when invoked with -rX..Y. (Vincent Ladeuil, #474807) * Properly handle ``param_name`` attribute for ``ListOption``. (Martin von Gagern, #387117) Improvements ************ * ``bzr commit`` will prompt before using a commit message that was generated by a template and not edited by the user. (Robert Collins, #530265) * ``bzr diff`` read-locks the trees and branches only once, saving about 10-20ms on ``bzr diff`` in a bzr.dev tree. (Andrew Bennetts) * ``bzr missing`` read-locks the branches only once. (Andrew Bennetts) * ``bzr pull`` locks the branches and tree only once. (Andrew Bennetts) * Index lookups in pack repositories search recently hit pack files first. In repositories with many pack files this can greatly reduce the number of files accessed, the number of bytes read, and the number of read calls. An incremental pull via plain HTTP takes half the time and bytes for a moderately large repository. (Andrew Bennetts) * Index lookups only re-order the indexes when the hit files aren't already first. Reduces the cost of reordering (John Arbash Meinel, #562429) * Less code is loaded at startup. (Cold-cache start time is about 10-20% less.) (Martin Pool, #553017) API Changes *********** * ``bzrlib.diff.get_trees_and_branches_to_diff`` is deprecated. Use ``get_trees_and_branches_to_diff_locked`` instead. (Andrew Bennetts) * ``TreeTransform.commit`` supports the full set of commit parameters, and auto-determines branch nick if not supplied. (Aaron Bentley) Internals ********* * ``bzrlib.commands.Command.run_direct`` is no longer needed - the pre 2.1 method of calling run() to perform testing or direct use via the API is now possible again. As part of this, the _operation attribute on Command is now transient and only exists for the duration of ``run()``. (Robert Collins)