bzr 2.2
#######

:Codename: La Hulpe
:2.2: 2010-08-06

This release marks the start of another long-term-stable series. From
here, we will only make bugfix releases on the 2.2 series (2.2.1, etc),
while 2.3 will become our new development series. The 2.0 and 2.1 series
will also continue to get bugfixes. (Currently 2.0 is planned to be
supported for another 6 months.)

This is primarily a bugfix and polish release over the 2.1 series, with
a large number of bugs fixed (>120), and some performance improvements.

There are some compatibility changes in this release.  For users of bzrlib
as a library, we now request that they call ``bzrlib.initialize`` and use
the returned context manager appropriately. For commandline users we no
longer guess user identity for ``bzr commit``, users must specify their
identity using ``bzr whoami`` (you don't need to specify your identity for
readonly operations).

Users are encouraged to upgrade from the other stable series.

Compatibility Breaks
********************

* BzrError subclasses no longer support the name "message" to be used
  as an argument for __init__ or in _fmt format specification as this
  breaks in some Python versions. errors.LockError.__init__ argument
  is now named "msg" instead of earlier "message".
  (Parth Malwankar, #603461)

* The old ``bzr selftest --benchmark`` option has been removed.
  <https://launchpad.net/bzr-usertest> is an actively-maintained
  macrobenchmark suite.
  (Martin Pool)

Bug Fixes
*********

* ``bzr ignore PATTERNS`` exits with error if a bad pattern is supplied.
  ``InvalidPattern`` exception error message now shows faulting
  regular expression.
  (Parth Malwankar #300062)

* Configuration files in ``${BZR_HOME}`` are now written in an atomic
  way which should help avoid problems with concurrent writers.
  (Vincent Ladeuil, #525571)

* Don't traceback trying to unversion children files of an already
  unversioned directory.  (Vincent Ladeuil, #494221)

* ``HTTP/1.1`` test servers now set a ``Content-Length`` header to comply
  with pedantic ``HTTP/1.1`` clients. (Vincent Ladeuil, #568421)

* Progress bars prefer to truncate the text message rather than the
  counters.  The spinner is shown between the network transfer indicator
  and the progress message.  Progress bars are correctly cleared off when 
  they finish.  (Martin Pool, #611127)

* Recursive binding for checkouts is now detected by bzr. A clear error
  message is shown to the user. (Parth Malwankar, #405192)

Improvements
************

* Add ``bzrlib.merge.MergeIntoMerger``, which can merge part or all of a
  tree, and works with unrelated branches.  (Andrew Bennetts)

* Add py2exe windows target ``bzrw.exe``. This allow for starting a Bazaar
  GUI with out have a console open in the background.
  (Gary van der Merwe, #433781)

Documentation
*************

* ``bzr help patterns`` now explains case insensitive patterns and
  points to Python regular expression documentation.
  (Parth Malwankar, #594386)

API Changes
***********

* Delete ``ProgressTask.note``, which was deprecated in 2.1.

Testing
*******

* Unit test added to ensure that "message" is not uses as a format variable
  name in BzrError subclasses as this conflicts with some Python versions.
  (Parth Malwankar, #603461)

