<commit_before>Release notes for Gerrit 2.5.2
==============================

Gerrit 2.5.2 is now available:

link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.5.2.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.5.2.war]

There are no schema changes from 2.5, or 2.5.1.

However, if upgrading from anything 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.

* 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=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 behaviour in the commit-msg hook caused by `GREP_OPTIONS`
+
If `GREP_OPTIONS` was set, it caused unexpected behaviour 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.
<commit_msg>Update release notes for Gerrit 2.5.2<commit_after>Release notes for Gerrit 2.5.2
==============================

Gerrit 2.5.2 is now available:

link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.5.2.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.5.2.war]

There are no schema changes from 2.5, or 2.5.1.

However, if upgrading from anything 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 behaviour in the commit-msg hook caused by `GREP_OPTIONS`
+
If `GREP_OPTIONS` was set, it caused unexpected behaviour 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.

{'fraction_non_alphanumeric': 0.06717451523545706, 'fraction_numerical': 0.013553620894341116, 'mean_word_length': 4.348677248677249, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5812680', 'n_tokens_mistral': 2881, 'n_tokens_neox': 2673, 'n_words': 1435}