blob: 99cb43752783dc2868a756a77b9ecc411f5395a4 [file] [log] [blame]
= Release notes for Gerrit 2.8.2
There are no schema changes from link:ReleaseNotes-2.8.1.html[2.8.1].
== 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
* link:[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:[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:[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
Running a query with `limit:0` when the secondary index is enabled was causing
an internal server error.
* link:[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:[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:[Issue 2441]:
Allow to create branch with new commits.
Branches could not be created with a new commit which is not on other branches
* 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:[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:[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:[Issue 2398]:
Enable syntax highlighting for Groovy, Clojure, Lisp, Ruby and Perl.
* link:[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:[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:[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:[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:[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:[
broken in MINA SSHD]. Support is removed until the next release of MINA
SSHD in which it is fixed.
* link:[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:[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:[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
== 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
* Remove double border around code snippets.
* Add border around tables.