Release notes for Gerrit 2.0.9
==============================

Gerrit 2.0.9 is now available in the usual location:

link:http://code.google.com/p/gerrit/downloads/list[http://code.google.com/p/gerrit/downloads/list]

*WARNING: This version contains schema changes.*

Schema upgrades:
----
  java -jar gerrit.war --cat sql/upgrade007_008.sql | psql reviewdb
  java -jar gerrit.war --cat sql/upgrade008_009.sql | psql reviewdb
----

If one or more of your projects are using the undocumented `gerrit.fastforwardonly` configuration option, you should import that setting into the database:
----
  java -DGerritServer=GerritServer.properties -jar gerrit.war ImportProjectSubmitTypes
----

The SQL statement to insert a new project into the database has been changed.  Please see [http://gerrit.googlecode.com/svn/documentation/2.0/project-setup.html Project Setup] for the modified statement.

New Features
------------
* GERRIT-69   Make the merge commit message more detailed when mergi...
* Show the user's starred/not-starred icon in the change...
* Modify Push Annotated Tag to require signed tags, or r...
* GERRIT-77   Record who submitted a change in the change message
+

* Support different project level merge policies
* GERRIT-111  Support cherry-picking changes instead of merging them
+
These last two changes move the hidden gerrit.fastforwardonly feature to the database and the user interface, so project owners can make use of it (or not).  Please see the new 'Change Submit Action' section in the user documentation:
link:http://gerrit.googlecode.com/svn/documentation/2.0/project-setup.html[http://gerrit.googlecode.com/svn/documentation/2.0/project-setup.html]

Bug Fixes
---------
* Work around focus bugs in WebKit based browsers
* Include our license list in the WAR file
* Whack any prior submit approvals by myself when replac...
* GERRIT-35   Handle unwrapped commit message more gracefully
* GERRIT-85   ie6: Correct rendering of commit messages
* GERRIT-89   ie6: Fix date line wrapping in messages

Other Changes
-------------
* Start 2.0.9 development
* Always show the commit SHA-1 next to the patch set hea...
* Silence more non-critical log messages from openid4java
* Fix default READ access on new database initialization
* Don't permit project rights to be created backwards
* Don't permit project rights to be created backwards (p...
* Select better defaults for min/max access rights when ...
* Show the + or - numeric level when adding a new ACL en...
* Fix odd formatting errors in MergeOp.java
* Fix tab formatting in pom.xml
* Require the submitter approval to be > 0 to claim it i...
* Fix the copyright header in pom.xml to be AOSP
* Add some missing copyright headers
* Remove Gerrit 1.x to 2.x import tools
* Upgrade JGit to 0.4.0-272-g7322ea2
* Upgrade gwtexpui to 1.0.2
* Attach submitter identity to change messages about suc...
* Automatically generate unique names for our CSS code
* Cache `*`.nocache.js and don't cache the host page
* gerrit 2.0.9