bazaar-ng 0.8 released

Martin Pool mbp at
Mon May 8 05:54:13 BST 2006

I'm happy to announce the release of bazaar-ng (bzr) 0.8.  This release
contains many improvements on 0.7, and upgrading is recommended for all
users.  This release supports a new storage format and upgrading
existing data is recommended but not required.

Source is available from

If you're using the bzrtools plugin please note that a new version
which fully supports bzr 0.8 will be available shortly.


bzr 0.8  2006-05-08


    Release 0.8 of bzr introduces a new format for history storage, called
    'knit', as an evolution of to the 'weave' format used in 0.7.  Local 
    and remote operations are faster using knits than weaves.  Several
    operations including 'init', 'init-repo', and 'upgrade' take a 
    --format option that controls this.  Branching from an existing branch
    will keep the same format.

    It is possible to merge, pull and push between branches of different
    formats but this is slower than moving data between homogenous
    branches.  It is therefore recommended (but not required) that you
    upgrade all branches for a project at the same time.  Information on
    formats is shown by 'bzr info'.

    bzr 0.8 now allows creation of 'repositories', which hold the history 
    of files and revisions for several branches.  Previously bzr kept all
    the history for a branch within the .bzr directory at the root of the
    branch, and this is still the default.  To create a repository, use
    the new 'bzr init-repo' command.  Branches exist as directories under
    the repository and contain just a small amount of information
    indicating the current revision of the branch.

    bzr 0.8 also supports 'checkouts', which are similar to in cvs and
    subversion.  Checkouts are associated with a branch (optionally in a
    repository), which contains all the historical information.  The
    result is that a checkout can be deleted without losing any
    already-committed revisions.  A new 'update' command is also available. 

    Repositories and checkouts are not supported with the 0.7 storage
    format.  To use them you must upgrad to either knits, or to the
    'metaweave' format, which uses weaves but changes the .bzr directory


    * Sftp paths can now be relative, or local, according to the lftp
      convention. Paths now take the form:

    * The FTP transport now tries to reconnect after a temporary
      failure. ftp put is made atomic. (Matthieu Moy)

    * The FTP transport now maintains a pool of connections, and
      reuses them to avoid multiple connections to the same host (like
      sftp did). (Daniel Silverstone)

    * The file has been removed. To create the man page now,
      use ./ man. The new program can also create other files.
      Run "python --help" for usage information. (Hans
      Ulrich Niedermann & James Blackwell).

    * Man Page now gives full help (James Blackwell). Help also updated to 
      reflect user config now being stored in .bazaar (Hans Ulrich

    * It's now possible to set aliases in bazaar.conf (Erik Bågfors)

    * Pull now accepts a --revision argument (Erik Bågfors)

    * 'bzr re-sign' now allows multiple revisions to be supplied on the command
      line. You can now use the following command to sign all of your old commits.
        find .bzr/revision-store// -name my at email-* \
          | sed 's/.*\/\/..\///' \
          | xargs bzr re-sign

    * Upgrade can now upgrade over the network. (Robert Collins)

    * Two new commands 'bzr checkout' and 'bzr update' allow for CVS/SVN-alike
      behaviour.  By default they will cache history in the checkout, but
      with --lightweight almost all data is kept in the master branch.
      (Robert Collins)

    * 'revert' unversions newly-versioned files, instead of deleting them.

    * 'merge' is more robust.  Conflict messages have changed.

    * 'merge' and 'revert' no longer clobber existing files that end in '~' or

    * Default log format can be set in configuration and plugins can register
      their own formatters. (Erik Bågfors)

    * New 'reconcile' command will check branch consistency and repair indexes
      that can become out of sync in pre 0.8 formats. (Robert Collins,
      Daniel Silverstone)

    * New 'bzr init --format' and 'bzr upgrade --format' option to control 
      what storage format is created or produced.  (Robert Collins, 
      Martin Pool)

    * Add parent location to 'bzr info', if there is one.  (Olaf Conradi)

    * New developer commands 'weave-list' and 'weave-join'.  (Martin Pool)

    * New 'init-repository' command, plus support for repositories in 'init'
      and 'branch' (Aaron Bentley, Erik Bågfors, Robert Collins)

    * Improve output of 'info' command. Show all relevant locations related to
      working tree, branch and repository. Use kibibytes for binary quantities.
      Fix off-by-one error in missing revisions of working tree.  Make 'info'
      work on branches, repositories and remote locations.  Show locations
      relative to the shared repository, if applicable.  Show locking status
      of locations.  (Olaf Conradi)

    * Diff and merge now safely handle binary files. (Aaron Bentley)

    * 'pull' and 'push' now normalise the revision history, so that any two
      branches with the same tip revision will have the same output from 'log'.
      (Robert Collins)

    * 'merge' accepts --remember option to store parent location, like 'push'
      and 'pull'. (Olaf Conradi)

    * bzr status and diff when files given as arguments do not exist
      in the relevant trees.  (Martin Pool, #3619)

    * Add '.hg' to the default ignore list.  (Martin Pool)

    * 'knit' is now the default disk format. This improves disk performance and
      utilization, increases incremental pull performance, robustness with SFTP
      and allows checkouts over SFTP to perform acceptably. 
      The initial Knit code was contributed by Johan Rydberg based on a
      specification by Martin Pool.
      (Robert Collins, Aaron Bentley, John Rydberg, Martin Pool).

    * New tool to generate all-in-one html version of the manual.  (Alexander

    * Hitting CTRL-C while doing an SFTP push will no longer cause stale locks
      to be left in the SFTP repository. (Robert Collins, Martin Pool).

    * New option 'diff --prefix' to control how files are named in diff
      output, with shortcuts '-p0' and '-p1' corresponding to the options for 
      GNU patch.  (Alexander Belchenko, Goffredo Baroncelli, Martin Pool)

    * Add --revision option to 'annotate' command.  (Olaf Conradi)

    * Add --revision option to 'annotate' command.  (Olaf Conradi)

    * If bzr shows an unexpected revision-history after pulling (perhaps due
      to a reweave) it can now be corrected by 'bzr reconcile'.
      (Robert Collins)


    * Commit is now verbose by default, and shows changed filenames and the 
      new revision number.  (Robert Collins, Martin Pool)

    * Unify 'mv', 'move', 'rename'.  (#5379, Matthew Fuller)

    * 'bzr -h' shows help.  (#35940, Martin Pool, Ian Bicking)

    * Make 'pull' and 'push' remember location on failure using --remember.
      (Olaf Conradi)

    * For compatibility, make old format for using weaves inside metadir
      available as 'metaweave' format.  Rename format 'metadir' to 'default'.
      Clean up help for option --format in commands 'init', 'init-repo' and
      'upgrade'.  (Olaf Conradi)

    * The internal storage of history, and logical branch identity have now
      been split into Branch, and Repository. The common locking and file 
      management routines are now in bzrlib.lockablefiles. 
      (Aaron Bentley, Robert Collins, Martin Pool)

    * Transports can now raise DependencyNotPresent if they need a library
      which is not installed, and then another implementation will be 
      tried.  (Martin Pool)

    * Remove obsolete (and no-op) `decode` parameter to `Transport.get`.  
      (Martin Pool)

    * Using Tree Transform for merge, revert, tree-building

    * WorkingTree.create, Branch.create, WorkingTree.create_standalone,
      Branch.initialize are now deprecated. Please see BzrDir.create_* for
      replacement API's. (Robert Collins)

    * New BzrDir class represents the .bzr control directory and manages
      formatting issues. (Robert Collins)

    * New repository.InterRepository class encapsulates Repository to 
      Repository actions and allows for clean selection of optimised code
      paths. (Robert Collins)

    * bzrlib.fetch.fetch and bzrlib.fetch.greedy_fetch are now deprecated,
      please use 'branch.fetch' or 'repository.fetch' depending on your
      needs. (Robert Collins)

    * deprecated methods now have a 'is_deprecated' flag on them that can
      be checked, if you need to determine whether a given callable is 
      deprecated at runtime. (Robert Collins)

    * Progress bars are now nested - see
      bzrlib.ui.ui_factory.nested_progress_bar. (Robert Collins, Robey Pointer)

    * New API call get_format_description() for each type of format.
      (Olaf Conradi)

    * Changed branch.set_parent() to accept None to remove parent.
      (Olaf Conradi)

    * Deprecated BzrError AmbiguousBase.  (Olaf Conradi)

    * WorkingTree.branch is now a read only property.  (Robert Collins)

    * bzrlib.ui.text.TextUIFactory now accepts a bar_type parameter which
      can be None or a factory that will create a progress bar. This is
      useful for testing or for overriding the bzrlib.progress heuristic.
      (Robert Collins)

    * New API method get_physical_lock_status() to query locks present on a
      transport.  (Olaf Conradi)

    * Repository.reconcile now takes a thorough keyword parameter to allow
      requesting an indepth reconciliation, rather than just a data-loss 
      check. (Robert Collins)

    * bzrlib.ui.ui_factory protocol now supports 'get_boolean' to prompt
      the user for yes/no style input. (Robert Collins)


    * SFTP tests now shortcut the SSH negotiation, reducing test overhead
      for testing SFTP protocol support. (Robey Pointer)

    * Branch formats are now tested once per implementation (see bzrlib.
      tests.branch_implementations. This is analagous to the transport
      interface tests, and has been followed up with working tree,
      repository and BzrDir tests. (Robert Collins)

    * New test base class TestCaseWithTransport provides a transport aware
      test environment, useful for testing any transport-interface using
      code. The test suite option --transport controls the transport used
      by this class (when its not being used as part of implementation
      contract testing). (Robert Collins)

    * Close logging handler on disabling the test log. This will remove the
      handler from the internal list inside python's logging module,
      preventing shutdown from closing it twice.  (Olaf Conradi)

    * Move test case for uncommit to blackbox tests.  (Olaf Conradi)

    * run_bzr and run_bzr_captured now accept a 'stdin="foo"' parameter which
      will provide String("foo") to the command as its stdin.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: Digital signature
Url : 

More information about the bazaar mailing list