==============================
RBTools 0.2 RC 1 Release Notes
==============================

**Release date**: February 13, 2010


post-review
===========

This release contains many feature and compatibility enhancements over 0.2
beta 2. It's also required for the upcoming Review Board 1.5 release, due to
some API changes being made.


New Features
------------

General
~~~~~~~

* Added support for HTTP Digest Authentication. Patch by Ryan Oblak.

* Syntax errors in :file:`.reviewboardrc` files are now reported, along with
  the filename, line number and offset in the line. Patch by Eric Huss.

* Added a :option:`--diff-filename` option to post-review to specify an
  existing diff to upload instead of generating a new diff. A value of
  ``-`` will tell post-review to read from standard input. Patch by
  Chris Clark.

* post-review is now much more flexible with the HTTP status codes received
  from the server. It used to assume that anything other than an HTTP 200 OK
  was an error. However, in the upcoming 1.5 release of Review Board, API
  error codes will be represented by different HTTP status codes.


Git
~~~

* Git now supports :option:`--revision-range`. Patch by Flavio Castelli.

* Parent branches are now properly detected rather than hard-coding ``master``.
  The logic now attempts the following:

  1. Tries to detect he tracking branch for the current HEAD, if possible.
  2. If a tracking branch doesn't exist, or is not remote, it will fall back
     on ``origin/master``.
  3. If the new :option:`--tracking-branch` parameter is specified, this
     branch will be used instead of ``origin/master``.

  Patch by Dan Savilonis.


Mercurial
~~~~~~~~~

* Added support for :option:`--guess-description` and
  :option:`--guess-summary` for Mercurial. These support revision ranges.
  Patch by Stefan Ring.


Perforce
~~~~~~~~

* post-review now supports older versions of p4d, prior to 2002.2. Patch by
  Matthew Woehlke.

* Server aliases are now supported. Some Perforce setups have DNS aliases
  for a Perforce server, which would cause a failure to find the right
  repository on a Review Board server. We now attempt each alias until we
  find the right one. This doesn't require any additional configuration.
  Patch by Ravi Kondamuru.

* Add support for the new ``move/add`` and ``move/delete`` operations.
  Newer versions of Perforce these new operation types in the change lists,
  which really map to our existing ``add`` and ``delete``. (:bug:`1417`)

* Added support for diffs against the "default" pending changelist. Patch
  by Matthew Woehlke. (:bug:`1020`)


Subversion
~~~~~~~~~~

* Subversion now supports the :option:`--revision-range` parameter.
  (:bug:`1162`)


Bugs Fixed
----------

General
~~~~~~~

* The path to the user's Application Data directory was wrong on Windows
  Vista and Windows 7. The path is now determined from the :envvar:`APPDATA`
  environment variable. (:bug:`1279`)

* post-review no longer unconditionally publishes a draft when setting
  a field (such as the summary, target reviewers, etc.). This was resulting
  in an extra change description entry, even if uploading the diff failed.
  We now explicitly require using :option:`--publish`. (:bug:`811`)

* Fix error reporting when using :option:`--diff-only`. When encountering
  a server-side error, an exception would be thrown, instead of handling them
  in a sane fashion. This was due to special-casing error reporting for this
  option. We now report the errors properly. Patch by Eric Huss.

* There were issues with uploading diffs containing non-ASCII characters.
  The ``Content-Length`` header was calculated bsaed on the length of
  the diff in characters instead of bytes, possibly truncating some files.
  We now ensure that this is properly calculated. Patch by
  Thilo-Alexander Ginkel.

* Removed an unnecessary dependency on :mod:`simplejson` on Python 2.6.
  (:bug:`1383`)


Git
~~~

* When using :command:`git-svn`, binary files were being filtered out of
  diffs. We now fake the information needed to include it in the diff.
  Patch by Anthony Cruz.

* Fixed a bad assumption with :command:`git-svn` where the ``master`` branch
  was hard-coded to represent SVN's ``trunk``. Now it calculates the parent
  branch, which may be ``master`` or some other branch. Patch by
  Mike Crute.


Mercurial
~~~~~~~~~

* Mercurial repository paths in a :file:`.hgrc` file that contained usernames
  would fail to match on the Review Board server. These usernames are now
  stripped out from the path. Patch by Tom Saeger.


Perforce
~~~~~~~~

* Files without a trailing newline resulted in broken diffs, where the
  diff from one file merged in with the diff from the next. We now work
  around this by guaranteeing a newline between the two files. (:bug:`1340`)

* Fix support for listing binary files in a diff. Patch by Eric Huss.


Contributors
============

* Anthony Cruz
* Christian Hammond
* Dan Savilonis
* David Trowbridge
* Eric Huss
* Flavio Castelli
* Jason Felice
* Luke Robison
* Matthew Woehlke
* Mike Crute
* Petr Novák
* Ravi Kondamuru
* Ryan Oblak
* Stefan Ring
* Thilo-Alexander Ginkel
* Tom Saeger



.. comment: vim: ft=rst et
