Gerrit 2.5.2 is now available:

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

  • 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.

  • 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.

  • 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

    Gerrit Configuration parameters that expect a numerical time unit as value can now be set to 0.

  • 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.

  • 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.