bazaar 1.6beta2 released - your help sought in testing

Martin Pool mbp at canonical.com
Tue Jun 10 08:43:19 BST 2008


The Bazaar team has just released bazaar 1.6beta2, which is preparing
for a new release adding a faster bzr+ssh network protocol, and a
branch-stacking feature.  We'd appreciate your help in testing it with
your own branches.

The source for this release is now available from
<https://launchpad.net/bzr/1.6/1.6beta2>, and packages for various
systems should be available shortly from
<http://bazaar-vcs.org/Download>.  For Ubuntu users, 1.6beta2 will
soon be in a Launchpad apt archive, described at
<https://launchpad.net/~bzr-beta-ppa/+archive>

Thanks to everyone who sent patches, bug reports, feedback and questions.

-- 
Martin

bzr 1.6beta2 2008-06-10
-----------------------

This release contains further progress towards our 1.6 goals of shallow
repositories, and contains a fix for some user-affecting bugs in the
repository layer.  Building working trees during checkout and branch is
now faster.

  BUG FIXES:

    * Avoid KnitCorrupt error extracting inventories from some repositories.
      (The data is not corrupt; an internal check is detecting a problem
      reading from the repository.)
      (Martin Pool, Andrew Bennetts, Robert Collins, #234748)

    * Inserting a bundle which changes the contents of a file with no trailing
      end of line, causing a knit snapshot in a 'knits' repository
will no longer
      cause KnitCorrupt. (Robert Collins)

    * ``RemoteBranch.pull`` needs to return the ``self._real_branch``'s
      pull result. It was instead just returning None, which breaks ``bzr
      pull``. (John Arbash Meinel, #238149)

    * Sanitize branch nick before using it as an attachment filename in
      ``bzr send``. (Lukáš Lalinský, #210218)

    * Squash ``inv_entry.symlink_target`` to a plain string when
      generating DirState details. This prevents from getting a
      ``UnicodeError`` when you have symlinks and non-ascii filenames.
      (John Arbash Meinel, #135320)

  IMPROVEMENTS:

    * Added the 'alias' command to set/unset and display aliases. (Tim Penhey)

    * ``added``, ``modified``, and ``unknowns`` behaviour made
consistent (all three
      now quote paths where required). Added ``--null`` option to ``added`` and
      ``modified`` (for null-separated unknowns, use ``ls --unknown --null``)
      (Adrian Wilkins)

    * Faster branching (1.09x) and lightweight checkouts (1.06x) on large trees.
      (Ian Clatworthy, Aaron Bentley)

  BUGFIXES:

    * ``bzr status`` was breaking if you merged the same revision twice.
      (John Arbash Meinel, #235407)

  DOCUMENTATION:

    * Added *Bazaar Zen* section to the User Guide. (Ian Clatworthy)

  TESTING:

    * Fix the test HTTPServer to be isolated from chdir calls made while it is
      running, allowing it to be used in blackbox tests. (Robert Collins)

  API CHANGES:

    * ``WorkingTree.set_parent_(ids/trees)`` will now filter out revisions
      which are in the ancestry of other revisions. So if you merge the same
      tree twice, or merge an ancestor of an existing merge, it will only
      record the newest. (If you merge a descendent, it will replace its
      ancestor). (John Arbash Meinel, #235407)

  INTERNALS:

    * Knit record serialisation is now stricter on what it will accept, to
      guard against potential internal bugs, or broken input. (Robert Collins)


bzr 1.6beta1 2008-06-02
-----------------------


Commands that work on the revision history such as push, pull, missing,
uncommit and log are now substantially faster.  This release adds a
translation of some of the user documentation into Spanish.  (Contributions of
other translations would be very welcome.)  Bazaar 1.6beta1 adds a new network
protocol which is used by default and which allows for more efficient transfers
and future extensions.


  NOTES WHEN UPGRADING:

    * There is a new version of the network protocol used for bzr://, bzr+ssh://
      and bzr+http:// connections.  This will allow more efficient requests and
      responses, and more graceful fallback when a server is too old to
      recognise a request from a more recent client.  Bazaar 1.6 will
      interoperate with 0.16 and later versions, but servers should be upgraded
      when possible.  Bazaar 1.6 no longer interoperates with 0.15 and
earlier via
      these protocols.  Use alternatives like SFTP or upgrade those servers.
      (Andrew Bennetts, #83935)

  CHANGES:

    * Deprecation warnings will not be suppressed when running ``bzr selftest``
      so that developers can see if their code is using deprecated functions.
      (John Arbash Meinel)

  FEATURES:

    * Adding ``-Derror`` will now display a traceback when a plugin fails to
      load. (James Westby)

  IMPROVEMENTS:

    * ``bzr branch/push/pull -r XXX`` now have a helper function for finding
      the revno of the new revision (``Graph.find_distance_to_null``). This
      should make something like ``bzr branch -r -100`` in a shared, no-trees
      repository much snappier. (John Arbash Meinel)

    * ``bzr log --short -r X..Y`` no longer needs to access the full revision
      history. This makes it noticeably faster when logging the last few
      revisions. (John Arbash Meinel)

    * ``bzr ls`` now accepts ``-V`` as an alias for ``--versioned``.
      (Jerad Cramp, #165086)

    * ``bzr missing`` uses the new ``Graph.find_unique_ancestors`` and
      ``Graph.find_differences`` to determine missing revisions without having
      to search the whole ancestry. (John Arbash Meinel, #174625)

    * ``bzr uncommit`` now uses partial history access, rather than always
      extracting the full revision history for a branch. This makes it
      resolve the appropriate revisions much faster (in testing it drops
      uncommit from 1.5s => 0.4s). It also means ``bzr log --short`` is one
      step closer to not using full revision history.
      (John Arbash Meinel, #172649)

  BUGFIXES:

    * ``bzr merge --lca`` should handle when two revisions have no common
      ancestor other than NULL_REVISION. (John Arbash Meinel, #235715)

    * ``bzr status`` was breaking if you merged the same revision twice.
      (John Arbash Meinel, #235407)

    * ``bzr push`` with both ``--overwrite`` and ``-r NNN`` options no longer
      fails.  (Andrew Bennetts, #234229)

    * Correctly track the base URL of a smart medium when using bzr+http://
      URLs, which was causing spurious "No repository present" errors with
      branches in shared repositories accessed over bzr+http.
      (Andrew Bennetts, #230550)

    * Define ``_remote_is_at_least_1_2`` on ``SmartClientMedium`` so that all
      implementations have the attribute.  Fixes 'PyCurlTransport' object has no
      attribute '_remote_is_at_least_1_2' attribute errors.
      (Andrew Bennetts, #220806)

    * Failure to delete an obsolete pack file should just give a warning
      message, not a fatal error.  It may for example fail if the file is still
      in use by another process.
      (Martin Pool)

    * Fix MemoryError during large fetches over HTTP by limiting the amount of
      data we try to read per ``recv`` call.  The problem was observed with
      Windows and a proxy, but might affect other environments as well.
      (Eric Holmberg, #215426)

    * Handle old merge directives correctly in Merger.from_mergeable.  Stricter
      get_parent_map requirements exposed a latent bug here.  (Aaron Bentley)

    * Issue a warning and ignore passwords declared in authentication.conf when
      used for an ssh scheme (sftp or bzr+ssh).
      (Vincent Ladeuil, #203186)

    * Make both http implementations raise appropriate exceptions on 403
      Forbidden when POSTing smart requests.
      (Vincent Ladeuil, #230223)

    * Properly *title* header names in http requests instead of capitalizing
      them.
      (Vincent Ladeuil, #229076)

    * The "Unable to obtain lock" error message now also suggests using
      ``bzr break-lock`` to fix it.  (Martin Albisetti, #139202)

    * Treat an encoding of '' as ascii; this can happen when bzr is run
      under vim on Mac OS X.
      (Neil Martinsen-Burrell)

    * ``VersionedFile.make_mpdiffs()`` was raising an exception that wasn't in
      scope. (Daniel Fischer #235687)

  DOCUMENTATION:

    * Added directory structure and started translation of docs in spanish.
      (Martin Albisetti, Lucio Albenga)

    * Incorporate feedback from Jelmer Vernooij and Neil Martinsen-Burrell
      on the plugin and integration chapters of the User Guide.
      (Ian Clatworthy)

    * More Bazaar developer documentation about packaging and release process,
      and about use of Python reprs.
      (Martin Pool, Martin Albisetti)

    * Updated Tortise strategy document. (Mark Hammond)

  TESTING:

    * ``bzrlib.tests.adapt_tests`` was broken and unused - it has been fixed.
      (Robert Collins)

    * Fix the test HTTPServer to be isolated from chdir calls made while it is
      running, allowing it to be used in blackbox tests. (Robert Collins)

    * New helper function for splitting test suites
      ``split_suite_by_condition``. (Robert Collins)

  INTERNALS:

    * ``Branch.missing_revisions`` has been deprecated. Similar functionality
      can be obtained using ``bzrlib.missing.find_unmerged``. The api was
      fairly broken, and the function was unused, so we are getting rid of it.
      (John Arbash Meinel)

  API CHANGES:

    * ``Branch.abspath`` is deprecated; use the Tree or Transport
      instead.  (Martin Pool)

    * ``Branch.update_revisions`` now takes an optional ``Graph``
      object. This can be used by ``update_revisions`` when it is
      checking ancestry, and allows callers to prefer request to go to a
      local branch.  (John Arbash Meinel)

    * Branch, Repository, Tree and BzrDir should expose a Transport as an
      attribute if they have one, rather than having it indirectly accessible
      as ``.control_files._transport``.  This doesn't add a requirement
      to support a Transport in cases where it was not needed before;
      it just simplifies the way it is reached.  (Martin Pool)

    * ``bzr missing --mine-only`` will return status code 0 if you have no
      new revisions, but the remote does. Similarly for ``--theirs-only``.
      The new code only checks one side, so it doesn't know if the other
      side has changes. This seems more accurate with the request anyway.
      It also changes the output to print '[This|Other] branch is up to
      date.' rather than displaying nothing.  (John Arbash Meinel)

    * ``LockableFiles.put_utf8``, ``put_bytes`` and ``controlfilename``
      are now deprecated in favor of using Transport operations.
      (Martin Pool)

    * Many methods on ``VersionedFile``, ``Repository`` and in
      ``bzrlib.revision``  deprecated before bzrlib 1.5 have been removed.
      (Robert Collins)

    * ``RevisionSpec.wants_revision_history`` can be set to False for a given
      ``RevisionSpec``. This will disable the existing behavior of passing in
      the full revision history to ``self._match_on``. Useful for specs that
      don't actually need access to the full history. (John Arbash Meinel)

    * The constructors of ``SmartClientMedium`` and its subclasses now require a
      ``base`` parameter.  ``SmartClientMedium`` implementations now also need
      to provide a ``remote_path_from_transport`` method.  (Andrew Bennetts)

    * The default permissions for creating new files and directories
      should now be obtained from ``BzrDir._get_file_mode()`` and
      ``_get_dir_mode()``, rather than from LockableFiles.  The
``_set_file_mode``
      and ``_set_dir_mode`` variables on LockableFiles which were advertised
      as a way for plugins to control this are no longer consulted.
      (Martin Pool)

    * ``VersionedFile.join`` is deprecated. This method required local
      instances of both versioned file objects and was thus hostile to being
      used for streaming from a smart server. The new get_record_stream and
      insert_record_stream are meant to efficiently replace this method.
      (Robert Collins)

    * ``WorkingTree.set_parent_(ids/trees)`` will now filter out revisions
      which are in the ancestry of other revisions. So if you merge the same
      tree twice, or merge an ancestor of an existing merge, it will only
      record the newest. (If you merge a descendent, it will replace its
      ancestor). (John Arbash Meinel, #235407)

    * ``WorkingTreeFormat2.stub_initialize_remote`` is now private.
      (Martin Pool)



More information about the bazaar-announce mailing list