| = Release notes for Gerrit 2.8.2 | 
 |  | 
 | There are no schema changes from link:ReleaseNotes-2.8.1.html[2.8.1]. | 
 |  | 
 | Download: | 
 | link:https://www.gerritcodereview.com/download/gerrit-2.8.2.war[ | 
 | https://www.gerritcodereview.com/download/gerrit-2.8.2.war] | 
 |  | 
 |  | 
 | == Lucene Index | 
 |  | 
 | * Support committing Lucene writes within a fixed interval. | 
 | + | 
 | The `ramBufferSize` and `maxBufferedDocs` options control how often the | 
 | writer is flushed, but this does not fsync files on disk and thus | 
 | might not be permanent, particularly in a machine under heavy load. | 
 | + | 
 | As a result, commits to the index may not be completed, and updates may | 
 | be lost if the server goes down. | 
 | + | 
 | A new option `commitWithin` is added, to control how frequently the | 
 | indexes are committed. | 
 |  | 
 |  | 
 | == General | 
 |  | 
 | * Only add "cherry picked from" when cherry picking a merged change. | 
 | + | 
 | The "(cherry picked from commit ...)" line was being added in the commit | 
 | message when cherry picking from closed changes, which included those that were | 
 | abandoned. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2513[Issue 2513]: | 
 | Improve the "This patchset was cherry picked" message. | 
 | + | 
 | When cherry-picking a change, the message "This patchset was cherry picked to | 
 | change: <Change-Id>" was added as a message on the change.  This was not very | 
 | useful as the Change-Id is the same on the newly created change. | 
 | + | 
 | The message is changed to "This patchset was cherry picked to branch <branch | 
 | name> as commit <SHA1>". | 
 |  | 
 | * Fix PUSH permission check for draft changes. | 
 | + | 
 | It was not possible to block pushes to the `refs/drafts` namespace. | 
 |  | 
 | * Don't allow project owners to create branches if create is blocked. | 
 | + | 
 | Project owners were able to create branches through the WebUI, REST and SSH | 
 | even when the 'create reference' permission was actually blocked for them. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2397[Issue 2397]: | 
 | Remove quotes and trailing period from "topic edited" messages. | 
 | + | 
 | The quotes and trailing period were causing linkification to fail for topics | 
 | that were set to a URL. | 
 |  | 
 | * Check if user can read HEAD commit when resolving detached HEAD. | 
 | + | 
 | If HEAD was detached the `GetHead` REST endpoint refused to resolve HEAD | 
 | when the user was not a project owner. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2392[Issue 2392]: | 
 | Keep `status:closed` limit below MySQL Connector/J's hard limit. | 
 | + | 
 | Since MySQL Connector/J 5.1.21 does not allow limits above 50M rows | 
 | and aborts them with 'setMaxRows() out of range', we cannot use `MAX_VALUE` | 
 | as limit for plain `status:closed` queries. | 
 |  | 
 | * Fix IllegalArgumentException when running query with `limit:0` on secondary | 
 | index. | 
 | + | 
 | Running a query with `limit:0` when the secondary index is enabled was causing | 
 | an internal server error. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2331[Issue 2331]: | 
 | Make sure `change-merged` event contains correct patch set number. | 
 | + | 
 | When a change is submitted with the cherry-pick strategy, or when the | 
 | change is rebased with the "rebase if necessary" strategy, a new patch | 
 | set is created.  The newly created patch set was not being set in the | 
 | `change-merged` event. | 
 |  | 
 | * Guard against `diff.mnemonicprefix` in `commit-msg` hook. | 
 | + | 
 | When `diff.mnemonicprefix` was enabled in the git config, committing | 
 | changes with `git commit -v` caused the diff to be included in the | 
 | generated commit message. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2453[Issue 2453]: | 
 | Fix submit rule evaluation for non blocking labels. | 
 | + | 
 | Putting a negative score on a label configured as `NoBlock` was causing | 
 | the submit button to be disabled. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2441[Issue 2441]: | 
 | Allow to create branch with new commits. | 
 | + | 
 | Branches could not be created with a new commit which is not on other branches | 
 | already. | 
 |  | 
 | * Fix incompatibility between "Rebase if Necessary" and "copy scores". | 
 | + | 
 | When a project was set up with "Rebase if Necessary", one of its labels had | 
 | `copyAllScoresOnTrivialRebase` or `copyMaxScore`, and a change that actually | 
 | needed a trivial rebase was submitted, Gerrit first rebased the change, and in | 
 | the process copied the approval for the label.  It then copied all the | 
 | approvals, including the one already copied, which resulted in a constraint | 
 | violation on the database. | 
 |  | 
 | * Add `Implementation-Vendor` default manifest entry for plugins. | 
 | + | 
 | In buck, the `java_binary` rule merges manifest entries from dependent JARs | 
 | unless the input JAR possesses these entries itself.  This was causing some | 
 | plugins to display the wrong vendor information if they had dependency on | 
 | another JAR file that provided a `Implementation-Vendor` value. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2498[Issue 2498]: | 
 | Handle null commits when updating submodules. | 
 | + | 
 | In some edge cases it was possible that a null commit would exist, and this | 
 | caused a crash when updating submodules. | 
 |  | 
 | * Update and insert comments/approvals in a single step. | 
 | + | 
 | When a review includes both new label scores and updates to existing label | 
 | scores, use `upsert` to record them all at the same time, rather than in | 
 | separate `update` and `insert` operations. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2374[Issue 2374]: | 
 | Prevent duplicate commits in same project when uploading to `refs/changes/n`. | 
 | + | 
 | Under certain circumstances, when pushing to `refs/changes/n`, the same | 
 | commit could be pushed onto multiple changes even if the changes were on the | 
 | same branch. | 
 |  | 
 | * Remove dependency on joda time library in gerrit launcher. | 
 | + | 
 | The joda time library was being unnecessarily packaged in the root of | 
 | the gerrit.war file. | 
 |  | 
 | == Change Screen / Diff Screen | 
 |  | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2398[Issue 2398]: | 
 | Enable syntax highlighting for Groovy, Clojure, Lisp, Ruby and Perl. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2416[Issue 2416]: | 
 | Fix copy functionality in Firefox and Safari. | 
 | + | 
 | Ctrl-C/Cmd-C was activating the 'insert comment' feature, and preventing the | 
 | browser from copying the selected text to the clipboard. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2428[Issue 2428]: | 
 | Fix truncation of long lines in side-by-side diff. | 
 | + | 
 | Lines whose length exceeded the width of the window were being truncated | 
 | and only shown fully after zooming out/in on the browser. | 
 |  | 
 | * Fix handling of the enter key when editing the topic. | 
 | + | 
 | The enter key was causing the file diff view to open, instead of confirming | 
 | the topic edit. | 
 |  | 
 | * Fix wrong button being passed to the 'revert' action. | 
 | + | 
 | The action was using the cherry-pick button instead of the revert button. | 
 |  | 
 | * Improve the error message shown when cherry picking a change fails. | 
 | + | 
 | The error message "Could not create merge commit during cherry pick" was | 
 | confusing for users, and is replaced with simply "Cherry pick failed". | 
 |  | 
 | * Add newline on commit messages created by cherry picking a change in the UI | 
 | or via the REST API. | 
 | + | 
 | If a commit was cherry-picked from the UI or via the REST API, the | 
 | trailing newline on the end of the commit message was lost. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2405[Issue 2405]: | 
 | Update change to invalidate cache after deletion of draft revision. | 
 | + | 
 | When a non-current draft patch set was deleted no update of the change | 
 | was made, causing the change screen to not work properly because it | 
 | relied on cached data. | 
 |  | 
 | * Extend change screen's horizontal bars to full width. | 
 | + | 
 | This allows the title of the change message to have some padding within | 
 | the bar. | 
 |  | 
 | * Fix tab alignment to be correct width in side-by-side diff. | 
 | + | 
 | This fixes the tab width to be the user's preference, rather than | 
 | 1 + user's preference when show tabs is enabled. | 
 |  | 
 | * Fill the browser width in side-by-side diff. | 
 | + | 
 | Filling the browser available space with each side of the diff at | 
 | 50% size allows the user to more easily view long lines if they | 
 | have a wide display, and better fit on more narrow displays by | 
 | splitting the available width at 50%. | 
 |  | 
 | * Fire `comment-added` stream event even when mail notification is not sent. | 
 | + | 
 | Unchecking the "and send email" option on the change screen prevented the | 
 | `comment-added` event from being sent to the event stream. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2493[Issue 2493]: | 
 | Set uploader to current user in `patchset-created` event upon rebasing | 
 | a change in the UI. | 
 | + | 
 | When a change was rebased from the change screen, the `uploader` field | 
 | of the `patchset-created` event was incorrectly set to the original | 
 | change uploader, rather than the user that performed the rebase. | 
 |  | 
 | * Display a warning instead of an error when the intraline diff times out. | 
 | + | 
 | Displaying an error was confusing for users and administrators. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2514[Issue 2514]: | 
 | Display an error message when commentlink regex is invalid. | 
 | + | 
 | If a commentlink was configured with an invalid regular expression, for example | 
 | an expression that is valid in Java but not in JavaScript, the change screen | 
 | failed to load. | 
 | + | 
 | Now, an error message will be displayed in the UI. | 
 |  | 
 | == ssh | 
 |  | 
 |  | 
 | * Support for nio2 backend is removed. | 
 | + | 
 | The nio2 backend is link:https://issues.apache.org/jira/browse/SSHD-252[ | 
 | broken in MINA SSHD].  Support is removed until the next release of MINA | 
 | SSHD in which it is fixed. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2424[Issue 2424]: | 
 | Add descriptions on commands that are disabled in slave mode. | 
 | + | 
 | Commands that are disabled on a server running in slave mode were being listed | 
 | with an empty description. | 
 |  | 
 | * Remove obsolete commands from slave mode commands list. | 
 | + | 
 | The `approve` and `replicate` commands, which no longer exist, were still being | 
 | listed in the available commands shown when running the ssh `gerrit` command | 
 | without any arguments on a server running in slave mode. | 
 |  | 
 | * Remove 'including replication' from the `show-queue` command description. | 
 | + | 
 | The `replication` command is provided by the replication plugin, so it is no | 
 | longer relevant to mention this in the description of a core command. | 
 |  | 
 | * Fix aliasing of SSH commands. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2515[Issue 2515]: | 
 | Fix internal server error when updating an existing label with `gerrit review`. | 
 |  | 
 | == Replication Plugin | 
 |  | 
 |  | 
 | * Never replicate automerge-cache commits. | 
 | + | 
 | Commits in the `automerge-cache` namespace are used on the master to | 
 | improve performance of the diff UI.  They are not needed on remote | 
 | mirrors and it is wasteful to replicate them. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2420[Issue 2420]: | 
 | Fix failure to create missing remote repository via git:// protocol. | 
 | + | 
 | When replicating to a mirror over the anonymous git:// protocol and the | 
 | repository did not exist on the remote (i.e. if the remote was offline | 
 | when the repository was originally created), the replication failed with | 
 | a "remote repository error", rather than the expected "no repository". | 
 |  | 
 | * Improve info logging related to repository creation and deletion, and | 
 | differentiate between local and remote repository errors. | 
 |  | 
 | * Update documentation to clarify replication of refs/meta/config when | 
 | refspec is 'all refs'. | 
 |  | 
 | == Upgrades | 
 |  | 
 |  | 
 | * JGit is upgraded to 3.2.0.201312181205-r | 
 |  | 
 | == Documentation | 
 |  | 
 |  | 
 | * Add missing documentation of the secondary index configuration. | 
 | + | 
 | Document that open and closed changes are indexed in separate indexes, | 
 | and for Lucene indexes the RAM buffer size and maximum buffered documents | 
 | can be configured. | 
 |  | 
 | * Correct the Gerrit download link. | 
 | + | 
 | The link on the documentation index was pointing to the Google Code page, | 
 | which has not been used for some time. | 
 |  | 
 | * Correct the description of the `revisions` field in the REST API's | 
 | `ChangeInfo` entity. | 
 |  | 
 | * Add a link from the plugin documentation to the validation listeners API | 
 | documentation. | 
 |  | 
 | * Remove double border around code snippets. | 
 |  | 
 | * Add border around tables. |