bzr 1.9 candidate 1 released

Martin Pool mbp at canonical.com
Fri Oct 31 08:19:23 GMT 2008


Hi,

I'm happy to announce the availability of a candidate for the 1.9
release of Bazaar.

This release adds a new non-default format, 1.9 which uses B+Tree
indexes that are both smaller and faster to access.  1.9 is not the
default, so newly created repositories are readable by older versions
of Bazaar.  It also has some useful performance improvements to
network performance, particularly when pushing over ssh (or other
smartserver cases).

I'd like to ask our more advanced users to try out both of these areas
in particular, upgrading your repositories to 1.9 and giving
bzr+ssh:// a bit of a workout.  Please report any problems you find.

A source release is now available from
<http://bazaar-vcs.org/Download>.  I'd ask package maintainers and
also plugin maintainers to update and upload as soon as they can so
that we can get wide testing.  The Windows installers have been in
flux in the last two releases but before 1.9final we should have both
python-based and standalone installers.

-- 
Martin <http://launchpad.net/~mbp/>



bzr 1.9 2008-10-31
------------------

This release of Bazaar adds a new repository format, ``1.9``, with smaller
and more efficient index files.  This format can be specified when
creating a new repository, or used to losslessly upgrade an existing
repository.  bzr 1.9 also speeds most operations over the smart server
protocol, makes annotate faster, and uses less memory when making
checkouts or pulling large amounts of data.


  NEW FEATURES:

    * New Branch hook ``transform_fallback_location`` allows a function to
      be called when looking up the stacked source. (Michael Hudson)

    * New repository formats ``1.9`` and ``1.9-rich-root``. These have all
      the functionality of ``1.6``, but use the new btree indexes.
      These indexes are both smaller and faster for access to historical
      information.  (John Arbash Meinel)

  IMPROVEMENTS:

    * ``BTreeIndex`` code now is able to prefetch extra pages to help tune
      the tradeoff between bandwidth and latency. Should be tuned
      appropriately to not impact commands which need minimal information,
      but provide a significant boost to ones that need more context. Only
      has a direct impact on the ``--development2`` format which uses
      btree's for the indexes. (John Arbash Meinel)

    * ``bzr dump-btree`` is a hidden command introduced to allow dumping
      the contents of a compressed btree file.  (John Arbash Meinel)

    * ``bzr pack`` now tells the index builders to optimize for size. For
      btree index repositories, this can save 25% of the index size
      (mostly in the text indexes). (John Arbash Meinel)

    * ``bzr push`` to an existing branch or repository on a smart server
      is faster, due to Bazaar making more use of the ``get_parent_map``
      RPC when querying the remote branch's revision graph.
      (Andrew Bennetts)

    * default username for bzr+ssh and sftp can be configured in
      authentication.conf. (Aaron Bentley)

    * launchpad-login now provides a default username for bzr+ssh and sftp
      URLs, allowing username-free URLs to work for everyone. (Aaron Bentley)

    * ``lp:`` lookups no longer include usernames, making them shareable and
      shorter. (Aaron Bentley)

    * New ``PackRepository.autopack`` smart server RPC, which does
      autopacking entirely on the server.  This is much faster than
      autopacking via plain file methods, which downloads a large amount
      of pack data and then re-uploads the same pack data into a single
      file.  This fixes a major (although infrequent) cause of lengthy
      delays when using a smart server.  For example, pushing the 10th
      revision to a repository with 9 packs now takes 44 RPCs rather than
      179, and much less bandwidth too.  This requires Bazaar 1.9 on both
      the client and the server, otherwise the client will fallback to the
      slower method.  (Andrew Bennetts)

  BUG FIXES:

    * A failure to load a plugin due to an IncompatibleAPI exception is
      now correctly reported. (Robert Collins, #279451)

    * API versioning support now has a multiple-version checking api
      ``require_any_api``. (Robert Collins, #279447)

    * ``bzr branch --stacked`` from a smart server to a standalone branch
      works again.  This fixes a regression in 1.7 and 1.8.
      (Andrew Bennetts, #270397)

    * ``bzr co`` uses less memory. It used to unpack the entire WT into
      memory before writing it to disk. This was a little bit faster, but
      consumed lots of memory. (John Arbash Meinel, #269456)

    * ``bzr missing --quiet`` no longer prints messages about whether
      there are missing revisions.  The exit code indicates whether there
      were or not.  (Martin Pool, #284748)

    * Fixes to the ``annotate`` code. The fast-path which re-used the
      stored deltas was accidentally disabled all the time, instead of
      only when a branch was stacked. Second, the code would accidentally
      re-use a delta even if it wasn't against the left-parent, this
      could only happen if ``bzr reconcile`` decided that the parent
      ordering was incorrect in the file graph.  (John Arbash Meinel)

    * "Permission denied" errors that occur when pushing a new branch to a
      smart server no longer cause tracebacks.  (Andrew Bennetts, #278673)

    * Some compatibility fixes for building the extensions with MSVC and
      for python2.4. (John Arbash Meinel, #277484)

    * The index logic is now able to reload the list of pack files if and
      index ends up disappearing. We still don't reload if the pack data
      itself goes missing after checking the index. This bug appears as a
      transient failure (file not found) when another process is writing
      to the repository.  (John Arbash Meinel, #153786)

    * ``bzr switch`` and ``bzr bind`` will now update the branch nickname if
      it was previously set. All checkouts will now refer to the bound branch
      for a nickname if one was not explicitly set.
      (Marius Kruger, #230903)

  DOCUMENTATION:

    * Improved hook documentation. (Michael Ernst)

  API CHANGES:

    * commands.plugins_cmds is now a CommandRegistry, not a dict.

  INTERNALS:

     * New AuthenticationConfig.set_credentials method allows easy programmatic
       configuration of authetication credentials.



More information about the bazaar-announce mailing list