| = Release notes for Gerrit 2.5.2 | 
 |  | 
 | Gerrit 2.5.2 is now available: | 
 |  | 
 | link:https://www.gerritcodereview.com/download/gerrit-full-2.5.2.war[https://www.gerritcodereview.com/download/gerrit-full-2.5.2.war] | 
 |  | 
 | There are no schema changes from 2.5, or 2.5.1. | 
 |  | 
 | However, if upgrading from any earlier version, follow the upgrade | 
 | procedure in the 2.5 link:ReleaseNotes-2.5.html[Release Notes]. | 
 |  | 
 | == Bug Fixes | 
 | * Improve performance of ReceiveCommits for repos with many refs | 
 | + | 
 | When validating the received commits all existing refs were added as | 
 | uninteresting to the RevWalk. This resulted in bad performance when a | 
 | repository had many refs (>100000). Putting existing 'refs/changes/' | 
 | or 'refs/tags/' into the RevWalk is now avoided, which improves the | 
 | performance. | 
 |  | 
 | * Improve Push performance by discarding 'cache-automerge/*' refs | 
 |   early in VisibleRefFilter | 
 | + | 
 | For a typical large Git repository, with many refs and lots of cached | 
 | merges, the push time goes down significantly. | 
 |  | 
 | * Don't display all files from a merge-commit when auto-merge fails | 
 | + | 
 | For merge commits Gerrit shows the difference to the automatic merge | 
 | result. The creation of the auto-merge result may fail, e.g. when the | 
 | merge commit has multiple merge bases (because JGit doesn't support | 
 | this case yet). In this case Gerrit was showing all files from the | 
 | merge commit. This caused several issues: | 
 | + | 
 | -- | 
 | ** the file list was too large for projects with a large number of | 
 |    files | 
 | ** Gerrit would send too many false notification emails to users | 
 |    watching changes under certain paths | 
 | ** both client and server needed a lot of resources in order to handle | 
 |    such a large list of files | 
 | -- | 
 | + | 
 | Now the file list for a merge commit will be empty when the creation | 
 | of the auto-merge result fails. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=1726[issue 1726]: | 
 |   Create ref for new patch set on direct push | 
 | + | 
 | If a change is in review and a new commit that has the Change-Id of | 
 | this change in its commit message is pushed directly, then a new patch | 
 | set for this commit is created and the change gets automatically | 
 | closed. The problem was that no change ref for this new patch set was | 
 | created and as result the change ref that was shown for the new patch | 
 | set in the WebUI, and which was contained in the patchset-created | 
 | event, was invalid. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=1767[issue 1767]: | 
 |   Remove wrong error message when pushing a new ref fails | 
 | + | 
 | If pushing a new ref was rejected because the user was not allowed to | 
 | create it the error message always told the user that he's missing the | 
 | 'Create Reference' access right. This message was incorrect in some | 
 | cases. Users that have the 'Create Reference' access right assigned | 
 | are e.g. not allowed to create the ref if: | 
 | + | 
 | -- | 
 | ** they are pushing an annotated tag without having the | 
 |    'Push Annotated Tag' access right | 
 | ** they are pushing a signed tag without having the 'Push Signed Tag' | 
 |    access right | 
 | ** the project state is set to 'Read Only' | 
 | -- | 
 | + | 
 | Now the error message just says 'Prohibited by Gerrit'. This generic | 
 | error message is better than a more concrete error message which is | 
 | wrong in same cases because a wrong message is misleading and | 
 | confuses the user. | 
 | + | 
 | In addition the description of the 'Prohibited by Gerrit' error in the | 
 | documentation has been updated to explain some additional cases in | 
 | which the 'Prohibited by Gerrit' error occurs. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=1444[issue 1444]: | 
 |   Remove 'Mailing-List' header from sent emails | 
 | + | 
 | The non-standard 'Mailing-List' header that is included in the emails | 
 | sent by Gerrit isn't allowed by the Amazon Simple Email Service and is | 
 | now removed. | 
 |  | 
 | * Improve SMTP client error messages | 
 | + | 
 | The wording of the error messages in the SMTP client was changed to | 
 | make it more clear at exactly what stage in the SMTP transaction the | 
 | server returned an error. Also the server's response text is now | 
 | always included. | 
 | + | 
 | In addition it is now ensured that already rejected recipients are | 
 | included in the error message when the server rejects the DATA | 
 | command. Without this there is no way of debugging rejected | 
 | recipients if all recipients are rejected since that typically | 
 | results in a DATA command rejection. Because some SMTP servers (e.g. | 
 | Postfix with the default configuration) delay rejection of HELO/EHLO | 
 | and MAIL FROM commands to the RCPT TO stage, this can happen not only | 
 | for bad recipients. | 
 |  | 
 | * Allow time unit variables to be '0' | 
 | + | 
 | link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/config-gerrit.html[ | 
 | Gerrit Configuration parameters] that expect a numerical time unit as | 
 | value can now be set to '0'. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=1076[issue 1076]: | 
 |   Fix CLA hyperlink on account registration page | 
 | + | 
 | The New Contributor Agreement hyperlink on the Account Registration page | 
 | was malformed. | 
 |  | 
 | * Fix broken link to repo command reference | 
 | + | 
 | The link to the repo command reference in the 'repo upload' section of | 
 | the 'Uploading Changes' documentation was broken. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=1569[issue 1569]: | 
 | Fix unexpected behavior in the commit-msg hook caused by `GREP_OPTIONS` | 
 | + | 
 | If `GREP_OPTIONS` was set, it caused unexpected behavior in the | 
 | commit-msg hook.  For example if it included a setting like | 
 | `--exclude=".git/*"` it caused a new `Change-Id` line to be appended | 
 | to the commit message on every amend. | 
 | + | 
 | `GREP_OPTIONS` is now unset at the beginning of the commit-msg script | 
 | to prevent such problems from occurring. | 
 | + | 
 | The `GREP_OPTIONS` setting in the user's environment is unaffected | 
 | by this change. |