bzr 1.6beta3

Bazaar

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://[email protected]@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)