Release notes for Gerrit 2.0.20
===============================

Gerrit 2.0.20 is now available in the usual location:

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

Schema Change
-------------

A prior bug (GERRIT-262) permitted some invalid data to enter into some databases.  Administrators should consider running the following update statement as part of their upgrade to .20 to make any comments which were created with this bug visible:
----
  UPDATE patch_comments SET line_nbr = 1 WHERE line_nbr < 1;
----
Unfortunately the correct position of the comment has been lost, and the statement above will simply position them on the first line of the file.  Fortunately the lost comments were only on the wrong side of an insertion or deletion, and are generally rare.  (On my servers only 0.33% of the comments were created like this.)

New Features
------------
* New ssh command approve
+
Patch sets can now be approved remotely via SSH.  For more
details on this new feature please see the user documentation:
link:http://gerrit.googlecode.com/svn/documentation/2.0/cmd-approve.html[http://gerrit.googlecode.com/svn/documentation/2.0/cmd-approve.html]

* Support changing Google Account identity strings
+
For various reasons, including but not being limited to server
host name changes, the Google Accounts OpenID provider service
may change the identity string it returns to users.  By setting
auth.allowGoogleAccountUpgrade = true in the configuration file
administrators may permit automatically updating an existing
account with a new identity by matching on the email address.

Bug Fixes
---------
* GERRIT-262  Disallow creating comments on line 0
+
Users were able to create comments in dead regions of a file.
That is, if a region was deleted, and thus the left hand side
showed red deletion of lines, and the right hand side showed a
grey background of nothing, users were able to place a comment on
the right hand side in the nothing area.  Since this line did not
actually exist, the comment was positioned on line 0 of the file.
Because line 0 does not exist (lines are numbered 1..n), these
comments become hidden and could not be seen, but showed up in
the "X comments" counter seen on the Patch History or in the
listing of files in a patch set.
The UI and RPC layer was fixed to prevent comments on line 0,
but existing comments need to be manually moved to a real line.
See above for the suggested SQL UPDATE command.

* Make ID column same font size as rest of table
+
The font size of the ID column was too small, it is now the
same size as the other columns in the table.

* Fix ALTER INDEX in upgrade015_016_part1_mysql
* GERRIT-269  Fix bad change_key creation in upgrade016_017_mysql
+
MySQL schema upgrade scripts had a few bugs, fixed.

Other Changes
-------------
* Restart 2.0.20
* Update MINA SSHD to 0.2.0 release
* Update args4j to snapshot built from current CVS
* Cleanup newCmdLineParser method in BaseCommand
* Remove unnecessary throws IOException in ApproveCommand
* Cleanup formatting in ApproveCommand
* Cleanup assumption of Branch.NameKey parent is Project...
* Fix deprecated constructor warning in PatchSetIdHandler
* Don't log command line caused failures in flush-caches
* Use Guice to create custom arg4j OptionHandler instanc...
* gerrit approve: Allow --code-review=+2
* gerrit approve: Cleanup invalid patch set error handli...
* gerrit approve: Cleanup error reporting for missing ob...
* Parse project names through custom args4j OptionHandler
* git receive-pack: Use args4j to parse --reviewer and -...
* Move args4j handlers to their own package
* gerrit approve: Cleanup option parsing to reduce unnec...
* gerrit approve: accept commit SHA-1s for approval too
* gerrit approve: Allow approving multiple commits at on...
* gerrit approve: Add user documentation
* Remove unused imports from PatchSetDetailServiceImpl
* Only enable auth.allowGoogleAccountUpgrade when auth.t...
* Rename loginType to authType
* gerrit 2.0.20