View the full changelog

bzr 2.0.0

#########

:2.0.0: 2009-09-22

:Codename: Instant Karma

This release of Bazaar makes the 2a (previously 'brisbane-core') format

the default when new branches or repositories are created. This format is

substantially smaller and faster for many operations. Most of the work in

this release focuses on bug fixes and stabilization, covering both 2a and

previous formats. (See the Upgrade Guide for information on migrating

existing projects.)

This release also improves the documentation content and presentation,

including adding Windows HtmlHelp manuals.

The Bazaar team decided that 2.0 will be a long-term supported release,

with bugfix-only 2.0.x releases based on it, continuing for at least six

months or until the following stable release.

Changes from 2.0.0rc2 to final

******* ******* ******* ******* **

* Officially branded as 2.0.0 rather than 2.0 to clarify between things

that "want to happen on the 2.0.x stable series" versus things that want

to "land in 2.0.0". (Changes how bzrlib. _format_ version_ tuple() handles

micro = 0.) (John Arbash Meinel)

bzr 2.0.0rc2

############

:2.0.0rc2: 2009-09-10

New Features

************

* Added post_commit hook for mutable trees. This allows the keywords

plugin to expand keywords on files changed by the commit.

(Ian Clatworthy, #408841)

Bug Fixes

*********

* Bazaar's native protocol code now correctly handles EINTR, which most

noticeably occurs if you break in to the debugger while connected to a

bzr+ssh server. You can now can continue from the debugger (by typing

'c') and the process continues. However, note that pressing C-\ in the

shell may still kill the SSH process, which is bug 162509, so you must

sent a signal to the bzr process specifically, for example by typing

``kill -QUIT PID`` in another shell. (Martin Pool, #341535)

* ``bzr check`` in pack-0.92, 1.6 and 1.9 format repositories will no

longer report incorrect errors about ``Missing inventory ('TREE_ROOT', ...)``

(Robert Collins, #416732)

* ``bzr info -v`` on a 2a format still claimed that it was a "Development

format" (John Arbash Meinel, #424392)

* ``bzr log stacked-branch`` shows the full log including

revisions that are in the fallback repository. (Regressed in 2.0rc1).

(John Arbash Meinel, #419241)

* Clearer message when Bazaar runs out of memory, instead of a ``MemoryError``

traceback. (Martin Pool, #109115)

* Conversion to 2a will create a single pack for all the new revisions (as

long as it ran without interruption). This improves both ``bzr upgrade``

and ``bzr pull`` or ``bzr merge`` from local branches in older formats.

The autopack logic that occurs every 100 revisions during local

conversions was not returning that pack's identifier, which resulted in

the partial packs created during the conversion not being consolidated

at the end of the conversion process. (Robert Collins, #423818)

* Fetches from 2a to 2a are now again requested in 'groupcompress' order.

Groups that are seen as 'underutilized' will be repacked on-the-fly.

This means that when the source is fully packed, there is minimal

overhead during the fetch, but if the source is poorly packed the result

is a fairly well packed repository (not as good as 'bzr pack' but

good-enough.) (Robert Collins, John Arbash Meinel, #402652)

* Fix a potential segmentation fault when doing 'log' of a branch that had

ghosts in its mainline. (Evaluating None as a tuple is bad.)

(John Arbash Meinel, #419241)

* Fix a segmentation fault when computing the ``merge_sort`` of a graph

that has a ghost in the mainline ancestry.

(John Arbash Meinel, #419241)

* ``groupcompress`` sort order is now more stable, rather than relying on

``topo_sort`` ordering. The implementation is now

``KnownGraph. gc_sort` `. (John Arbash Meinel)

* Local data conversion will generate correct deltas. This is a critical

bugfix vs 2.0rc1, and all 2.0rc1 users should upgrade to 2.0rc2 before

converting repositories. (Robert Collins, #422849)

* Network streams now decode adjacent records of the same type into a

single stream, reducing layering churn. (Robert Collins)

* Prevent some kinds of incomplete data from being committed to a 2a

repository, such as revisions without inventories, a missing chk_bytes

record for an inventory, or a missing text referenced by an inventory.

(Andrew Bennetts, #423506, #406687)

Documentation

*************

* Fix assertion error about "_remember_ remote_ is_before" when pushing to

older smart servers.

(Andrew Bennetts, #418931)

* Help on hooks no longer says 'Not deprecated' for hooks that are

currently supported. (Ian Clatworthy, #422415)

* PDF and CHM (Windows HtmlHelp) formats are now supported for the

user documentation. The HTML documentation is better broken up into

topics. (Ian Clatworthy)

* The developer and foreign language documents are now separated

out so that searching in the HTML and CHM files produces more

useful results. (Ian Clatworthy)

* The main table of contents now provides links to the new Migration Docs

and Plugins Guide. (Ian Clatworthy)

bzr 2.0.0rc1

############

:Codename: no worries

:2.0.0rc1: 2009-08-26

Compatibility Breaks

******* ******* ******

* The default format for bzr is now ``2a``. This format brings many

significant performance and size improvements. bzr can pull from

any existing repository into a ``2a`` one, but can only transfer

from ``2a`` into ``rich-root`` repositories. The Upgrade guide

has more information about this change. (Robert Collins)

* On Windows auto-detection of Putty's plink.exe is disabled.

Default SSH client for Windows is paramiko. User still can force

usage of plink if explicitly set environment variable BZR_SSH=plink.

(#414743, Alexander Belchenko)

New Features

************

* ``bzr branch --switch`` can now switch the checkout in the current directory

to the newly created branch. (Lukáš Lalinský)

Bug Fixes

*********

* Fetches were being requested in 'groupcompress' order, but weren't

recombining the groups. Thus they would 'fragment' to get the correct

order, but not 'recombine' to actually benefit from it. Until we get

recombining to work, switching to 'unordered' fetches avoids the

fragmentation. (John Arbash Meinel, #402645)

* Fix a pycurl related test failure on karmic by recognizing an error

raised by newer versions of pycurl.

(Vincent Ladeuil, #306264)

* Fix a test failure on karmic by making a locale test more robust.

(Vincent Ladeuil, #413514)

* Fix IndexError printing CannotBindAddress errors.

(Martin Pool, #286871)

* Fix "Revision ... not present" errors when upgrading stacked branches,

or when doing fetches from a stacked source to a stacked target.

(Andrew Bennetts, #399140)

* ``bzr branch`` of 2a repositories over HTTP is much faster. bzr now

batches together small fetches from 2a repositories, rather than

fetching only a few hundred bytes at a time.

(Andrew Bennetts, #402657)

Improvements

************

* A better description of the platform is shown in crash tracebacks, ``bzr

--version`` and ``bzr selftest``.

(Martin Pool, #409137)

* bzr can now (again) capture crash data through the apport library,

so that a single human-readable file can be attached to bug reports.

This can be disabled by using ``-Dno_apport`` on the command line, or by

putting ``no_apport`` into the ``debug_flags`` section of

``bazaar.conf``.

(Martin Pool, Robert Collins, #389328)

* ``bzr push`` locally on windows will no longer give a locking error with

dirstate based formats. (Robert Collins)

* ``bzr shelve`` and ``bzr unshelve`` now work on windows.

(Robert Collins, #305006)

* Commit of specific files no longer prevents using the the iter_changes

codepath. On 2a repositories, commit of specific files should now be as

fast, or slightly faster, than a full commit. (Robert Collins)

* The internal core code that handles specific file operations like

``bzr st FILENAME`` or ``bzr commit FILENAME`` has been changed to

include the parent directories if they have altered, and when a

directory stops being a directory its children are always included. This

fixes a number of causes for ``InconsistentD elta`` errors, and permits

faster commit of specific paths. (Robert Collins, #347649)

Documentation

*************

* New developer documentation for content filtering.

(Martin Pool)

API Changes

***********

* ``bzrlib.shelf_ui`` has had the ``from_args`` convenience methods of its

classes changed to manage lock lifetime of the trees they open in a way

consistent with reader-exclusive locks. (Robert Collins, #305006)

Internals

*********

Testing

*******