bzr 1.6beta3 ############ :Released: 2008-07-17 This release adds a new 'stacked branches' feature allowing branches to share storage without being in the same repository or on the same machine. (See the user guide for more details.) It also adds a new hook, improved weaves, aliases for related locations, faster bzr+ssh push, and several bug fixes. Features ******** * New ``pre_change_branch_tip`` hook that is called before the branch tip is moved, while the branch is write-locked. See the User Reference for signature details. (Andrew Bennetts) * Rule-based preferences can now be defined for selected files in selected branches, allowing commands and plugins to provide custom behaviour for files matching defined patterns. See ``Rule-based preferences`` (part of ``Configuring Bazaar``) in the User Guide and ``bzr help rules`` for more information. (Ian Clatworthy) * Sites may suggest a branch to stack new branches on. (Aaron Bentley) * Stacked branches are now supported. See ``bzr help branch`` and ``bzr help push``. Branches must be in the ``development1`` format to stack, though the stacked-on branch can be of any format. (Robert Collins) Improvements ************ * ``bzr export --format=tgz --root=NAME -`` to export a gzipped tarball to stdout; also ``tar`` and ``tbz2``. (Martin Pool) * ``bzr (re)merge --weave`` will now use a standard Weave algorithm, rather than the annotation-based merge it was using. It does so by building up a Weave of the important texts, without needing to build the full ancestry. (John Arbash Meinel, #238895) * ``bzr send`` documents and better supports ``emacsclient`` (proper escaping of mail headers and handling of the MUA Mew). (Christophe Troestler) * Remembered locations can be specified by aliases, e.g. :parent, :public, :submit. (Aaron Bentley) * The smart protocol now has improved support for setting branches' revision info directly. This makes operations like push faster. The new request method name is ``Branch.set_last_revision_ex``. (Andrew Bennetts) Bug Fixes ********* * Bazaar is now able to be a client to the web server of IIS 6 and 7. The broken implementations of RFC822 in Python and RFC2046 in IIS combined with boundary-line checking in Bazaar previously made this impossible. (NB, IIS 5 does not suffer from this problem). (Adrian Wilkins, #247585) * ``bzr log --long`` with a ghost in your mainline now handles that ghost properly. (John Arbash Meinel, #243536) * ``check`` handles the split-up .bzr layout correctly, so no longer requires a branch to be present. (Daniel Watkins, #64783) * Clearer message about how to set the PYTHONPATH if bzrlib can't be loaded. (Martin Pool, #205230) * Errors about missing libraries are now shown without a traceback, and with a suggestion to install the library. The full traceback is still in ``.bzr.log`` and can be shown with ``-Derror``. (Martin Pool, #240161) * Fetch from a stacked branch copies all required data. (Aaron Bentley, #248506) * Handle urls such as ftp://user@host.com@www.host.com where the user name contains an @. (Neil Martinsen-Burrell, #228058) * ``needs_read_lock`` and ``needs_write_lock`` now suppress an error during ``unlock`` if there was an error in the original function. This helps most when there is a failure with a smart server action, since often the connection closes and we cannot unlock. (Andrew Bennetts, John Arbash Meinel, #125784) * Obsolete hidden command ``bzr fetch`` removed. (Martin Pool, #172870) * Raise the correct exception when doing ``-rbefore:0`` or ``-c0``. (John Arbash Meinel, #239933) * You can now compare file revisions in Windows diff programs from Cygwin Bazaar. (Matt McClure, #209281) * revision_history now tolerates mainline ghosts for Branch format 6. (Aaron Bentley, #235055) * Set locale from environment for third party libs. (Martin von Gagern, #128496) Documentation ************* * Added *Using stacked branches* to the User Guide. (Ian Clatworthy) * Updated developer documentation. (Martin Pool) Testing ******* * ``-Dmemory`` will cause /proc/PID/status to be catted before bzr exits, allowing low-key analysis of peak memory use. (Robert Collins) * ``TestCaseWithTransport.make_branch_and_tree`` tries harder to return a tree with a ``branch`` attribute of the right format. This was preventing some ``RemoteBranch`` tests from actually running with ``RemoteBranch`` instances. (Andrew Bennetts) API Changes *********** * Removed ``Repository.text_store``, ``control_store``, etc. Instead, there are new attributes ``texts, inventories, revisions, signatures``, each of which is a ``VersionedFiles``. See the Repository docstring for more details. (Robert Collins) * ``Branch.pull`` now accepts an ``_override_hook_target`` optional parameter. If you have a subclass of ``Branch`` that overrides ``pull`` then you should add this parameter. (Andrew Bennetts) * ``bzrlib.check.check()`` has been deprecated in favour of the more aptly-named ``bzrlib.check.check_branch()``. (Daniel Watkins) * ``Tree.print_file`` and ``Repository.print_file`` are deprecated. These methods are bad APIs because they write directly to sys.stdout. bzrlib does not use them internally, and there are no direct tests for them. (Alexander Belchenko) Internals ********* * ``cat`` command no longer uses ``Tree.print_file()`` internally. (Alexander Belchenko) * New class method ``BzrDir.open_containing_tree_branch_or_repository`` which eases the discovery of the tree, the branch and the repository containing a given location. (Daniel Watkins) * New ``versionedfile.KeyMapper`` interface to abstract out the access to underlying .knit/.kndx etc files in repositories with partitioned storage. (Robert Collins) * Obsolete developer-use command ``weave-join`` has been removed. (Robert Collins) * ``RemoteToOtherFetcher`` and ``get_data_stream_for_search`` removed, to support new ``VersionedFiles`` layering. (Robert Collins)