= Release notes for Gerrit 2.0.20

Gerrit 2.0.20 is now available in the usual location:

link:https://www.gerritcodereview.com/download/index.html[https://www.gerritcodereview.com/download/index.html]

== 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