Release notes for Gerrit 2.8.3
==============================

There are no schema changes from link:ReleaseNotes-2.8.2.html[2.8.2].

Download:
link:https://gerrit-releases.storage.googleapis.com/gerrit-2.8.3.war[
https://gerrit-releases.storage.googleapis.com/gerrit-2.8.3.war]


Bug Fixes
---------

* Fix for merging multiple changes with "Cherry Pick", "Merge Always" and
"Merge If Necessary" strategies.
+
If 2 or more changes were pending submit to the same project and branch,
it was possible for them to all be marked as status "merged" but only some of
them to actually land into the branch.


Documentation
-------------

* Minor fixes in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8.3/dev-buck.html[
buck build documentation].

* Clarification of the `commitWithin` setting in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.8.3/config-gerrit.html#__a_id_index_a_section_index[
Lucene index configuration].
+
Configuring the Lucene index to commit after every write can cause
poor performance of the reindex program.

