blob: f408e09322ada519962e431f7d83f17fd9f717ab [file] [log] [blame] [view]
# Gerrit 2.13
Download: **[2.13.8](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.8.war)**
| [2.13.7](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.7.war)
| [2.13.6](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.6.war)
| [2.13.5](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.5.war)
| [2.13.4](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.4.war)
| [2.13.3](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.3.war)
| [2.13.2](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.2.war)
| [2.13.1](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.1.war)
| [2.13](https://gerrit-releases.storage.googleapis.com/gerrit-2.13.war)
Documentation: **[2.13.8](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.8/index.html)**
| [2.13.7](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.7/index.html)
| [2.13.6](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.6/index.html)
| [2.13.5](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.5/index.html)
| [2.13.4](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.4/index.html)
| [2.13.3](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.3/index.html)
| [2.13.2](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.2/index.html)
| [2.13.1](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.1/index.html)
| [2.13](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/index.html)
[TOC]
## Release Highlights
* Suport for multiple database backends for "reviewed" flags (from 2.13.8)
* Support for Large File Storage (LFS)
* Metrics interface
* Hooks plugin
* Secondary index for accounts
* File annotations (blame) in side-by-side diff
## Important Notes
### Schema Changes
This release contains schema changes. To upgrade:
``` sh
java -jar gerrit.war init -d site_path
```
### Manual Schema Update for Reviewed Flags
Sites that have already upgraded to version 2.13 may want to migrate from the
default H2 database to MySQL or PostgreSQL. This can be done using the
[MigrateAccountPatchReviewDb](http://gerrit-documentation.storage.googleapis.com/Documentation/2.13.8/pgm-MigrateAccountPatchReviewDb.html)
program.
Sites that have already upgrade to version 2.13 before 2.13.8 need to manually
migrate the reviewed flags database to change the `file_name` column length.
After stopping Gerrit, enter the H2 console:
``` sh
java -jar /path/to/h2.jar -url jdbc:h2:path/to/review_site/db/account_patch_reviews
```
and then execute the following statement:
```
ALTER TABLE account_patch_reviews ALTER COLUMN file_name VARCHAR(4096) DEFAULT '' NOT NULL
```
Depending on the number of rows, this operation may take some time. For
example, one million rows may take up to 1 minute.
### Online Reindexing
To use online reindexing for the `changes` secondary index when upgrading
to 2.13.x, the server must first be upgraded to 2.8 (or 2.9) and then through
2.10, 2.11 and 2.12. Skipping a version will prevent the online reindexer from
working.
Gerrit 2.13 introduces a new secondary index for accounts, and this must be
indexed offline before starting Gerrit:
``` sh
java -jar gerrit.war reindex --index accounts -d site_path
```
If reindexing will be done offline, you may ignore these warnings and upgrade
directly to 2.13.x using the following command that will reindex both `changes`
and `accounts` secondary indexes:
``` sh
java -jar gerrit.war reindex -d site_path
```
### Hooks Plugin
The server side hooks functionality is moved to a core plugin. Sites
that make use of server side hooks must install this plugin during site init.
## New Features
### Large File Storage (LFS)
Gerrit provides an [extension point](https://gerrit-review.googlesource.com/Documentation/2.13/dev-plugins.html#lfs-extension)
that enables development of plugins implementing the
[LFS protocol](https://github.com/github/git-lfs/blob/master/docs/api/v1/http-v1-batch.md).
By setting
[`lfs.plugin`](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#lfs.plugin)
the administrator can configure the name of the plugin which handles LFS requests.
### Access control for git submodule subscriptions
To prevent potential security breaches as described in
[issue 3311](https://bugs.chromium.org/p/gerrit/issues/detail?id=3311), it is now
only possible for a project to subscribe to a submodule if the submodule
explicitly allows itself to be subscribed.
Please see the
[submodules user guide](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-submodules.html)
for details.
Note that when upgrading from an earlier version of Gerrit, permissions for
any existing subscriptions will be automatically added during the database
schema migration.
### Metrics
Metrics about Gerrit's internal state can be sent to external
monitoring systems.
Plugins can provide implementations of the metrics interface to
report metrics to different monitoring systems. The following
plugins are available:
* [JMX](https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-jmx)
* [Graphite](https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-graphite)
* [Elastic Search](https://gerrit-review.googlesource.com/#/admin/projects/plugins/metrics-reporter-elasticsearch)
Plugins can also provide their own metrics.
See the
[metrics documentation](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/metrics.html)
for further details.
### Hooks
Server side hooks are moved to the
[hooks plugin](https://gerrit-review.googlesource.com/#/admin/projects/plugins/hooks).
Sites that make use of server side hooks should install this
plugin. After installing the plugin, no additional configuration is needed.
The plugin uses the same configuration settings in `gerrit.config`.
### Secondary Index
* The secondary index now supports indexing of accounts.
The
[reindex program](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/pgm-reindex.html)
by default reindexes all changes and accounts. A new
option allows to explicitly specify whether to reindex changes or accounts.
The `suggest.fullTextSearch`, `suggest.fullTextSearchMaxMatches` and
`suggest.fullTextSearchRefresh` configuration options are removed. Full text
search is supported by default with the account secondary index.
* New ssh command to
[reindex changes](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/cmd-index-changes.html).
### User Interface
* The UI can now be loaded in an iFrame by enabling
[`gerrit.canLoadInIFrame`](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#gerrit.canLoadInIFrame)
in the site configuration.
#### Change Screen
* [Issue 106](https://bugs.chromium.org/p/gerrit/issues/detail?id=106):
Allow to select merge commit's parent for diff base in change screen.
* [Issue 3035](https://bugs.chromium.org/p/gerrit/issues/detail?id=3035):
Allow to remove specific votes from a change, while leaving the reviewer on the
change.
* [Issue 3487](https://bugs.chromium.org/p/gerrit/issues/detail?id=3487):
Use 'Ctrl-Alt-e' instead of 'e' to open edit mode.
#### Diff Screens
* Add all syntax highlighting available in CodeMirror.
* Improve search experience in diff screen.
Ctrl-F, Ctrl-G and Shift-Ctrl-G now bind to the search dialog box provided by
CodeMirror's search add-on. Enter and Shift-Enter navigate among the search
results from the CodeMirror search, just like they do in a normal browser
search. Esc now clears the search result.
If the user sets `Render` to `Slow` in the diff preferences and the file is less
than 4000 lines (huge), then Ctrl-F, Ctrl-G and Shift-Ctrl-G fall back to the
browser search.
* [Issue 2968](https://bugs.chromium.org/p/gerrit/issues/detail?id=2968):
Allow to go back to change list by keyboard shortcut from diff screens.
* Blame annotations.
By enabling
[`change.allowBlame`](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#change.allowBlame),
blame annotations can be shown in the side-by-side diff
screen gutter. Clicking the annotation opens the relevant change.
#### User Preferences
* [Issue 989](https://bugs.chromium.org/p/gerrit/issues/detail?id=989):
New option to control email notifications.
Users can now choose between 'Enabled', 'Disabled' and 'CC Me on Comments I Write'.
* New option to control adding 'Signed-off-by' footer in commit message of new changes
created online.
* New option to control auto-indent width in inline editor.
* [Issue 890](https://bugs.chromium.org/p/gerrit/issues/detail?id=890):
New diff option to control whether to skip unchanged files when navigating to
the previous or the next file.
### Changes
In order to avoid potentially confusing behavior, when submitting changes in a
batch, submit type rules may not be used to mix submit types on a single branch,
and trying to submit such a batch will fail.
### REST API
#### Accounts
* [Issue 3766](https://bugs.chromium.org/p/gerrit/issues/detail?id=3766):
Allow users with the
['ModifyAccount' capability](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/access-control.html#capability_modifyAccount)
to get the preferences for other users via the
[Get User Preferences endpoint](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-user-preferences).
* Rename 'Suggest Account' to
['Query Account'](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#query-account)
and add support for arbitrary account queries.
The `_more_accounts` flag is set on the last result when there are more results
than the limit. The `DETAILS` and `ALL_EMAILS` options may be set to control
whether the results should include details (full name, email, username, avatars)
and all emails, respectively.
* New endpoint:
[Get Watched Projects](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-watched-projects).
* New endpoint:
[Set Watched Projects](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-watched-projects).
* New endpoint:
[Delete Watched Projects](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#delete-watched-projects).
* New endpoint:
[Get Star Labels from Change](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-stars).
* New endpoint:
[Update Star Labels on Change](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#set-stars).
* New endpoint:
[Get OAuth Access Token](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#get-oauth-token).
* New endpoint:
[List Contributor Agreements](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#list-contributor-agreements).
* New endpoint:
[Sign Contributor Agreement](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-accounts.html#sign-contributor-agreement).
#### Changes
* [Issue 3579](https://bugs.chromium.org/p/gerrit/issues/detail?id=3579):
Append submitted info to ChangeInfo.
* New endpoint:
[Move Change](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-changes.html#move-change).
#### Groups
* Add `-s` as an alias for `--suggest` on the
[Suggest Group endpoint](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-groups.html#suggest-group).
#### Projects
* Add `async` option to the
[Run GC endpoint](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#run-gc)
to allow garbage collection to run asynchronously.
* New endpoint:
[List Access Rights](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-access).
* New endpoint:
[Add, Update and Delete Access Rights](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#set-access).
* New endpoint:
[Create Tag](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#create-tag).
* New endpoint:
[Get Mergeable Information](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/rest-api-projects.html#get-mergeable-info).
### Plugins
* Secure settings
Plugins may now store secure settings in `etc/$PLUGIN.secure.config` where they
will be decoded by the Secure Store implementation.
* Exported dependencies
Gson is now an exported dependency. Plugins no longer need to explicitly add
a dependency on it.
### Misc
* New project option to reject implicit merge commits.
The 'Reject Implicit Merges' option can be enabled to prevent non-merge commits
from implicitly bringing unwanted changes into a branch. This can happen for
example when a commit is made based on one branch but is mistakenly pushed to
another, for example based on `refs/heads/master` but pushed to `refs/for/stable`.
* New
[Add Patch Set capability](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/access-control.html#category_add_patch_set)
to control who is allowed to upload a new patch set to an existing change.
* [Issue 4015](https://bugs.chromium.org/p/gerrit/issues/detail?id=4015):
Allow setting a
[comment message](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-upload.html#message)
when uploading a change.
* Allow to specify
[who should be notified by email](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/user-upload.html#notify)
when uploading a change.
* [Issue 3220](https://bugs.chromium.org/p/gerrit/issues/detail?id=3220):
Append approval info to every comment-added stream event and hook.
* The `administrateServer` capability can be assigned to groups by setting
[`capability.administrateServer`](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#capability.administrateServer)
in the site configuration.
Configuring this option can be a useful fail-safe to recover a server in the
event an administrator removed all groups from the `administrateServer`
capability, or to ensure that specific groups always have administration
capabilities.
* New configuration options to configure JGit repository cache parameters.
[core.repositoryCacheCleanupDelay](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#core.repositoryCacheCleanupDelay)
and [core.repositoryCacheExpireAfter](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#core.repositoryCacheExpireAfter)
can be configured.
* Accept `-b` as an alias of `--batch` in the
[init program](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/pgm-init.html).
## Bugfixes
* Don't add the same SSH key multiple times.
If an already existing SSH key was added, a duplicate entry was added to the
list of user's SSH keys.
* Respect the 'Require a valid contributor agreement to upload' setting
when creating changes via the UI.
If a user had not signed a CLA, it was still possible for them to create a new
change with the 'Revert' or 'Cherry Pick' button.
* Make Lucene index more stable when being interrupted.
* Don't show the `start` and `idle` columns in the `show-connections`
output when the ssh backend is NIO2.
The NIO2 backend doesn't provide the start and idle times, and the
values being displayed were just dummy values. Now these values are
only displayed for the MINA backend.
* [Issue 4150](https://bugs.chromium.org/p/gerrit/issues/detail?id=4150):
Deleting a draft inline comment no longer causes the change's `Updated` field to
be bumped.
* [Issue 4099](https://bugs.chromium.org/p/gerrit/issues/detail?id=4099):
Fix SubmitWholeTopic does not update subscriptions.
* [Issue 3603](https://bugs.chromium.org/p/gerrit/issues/detail?id=3603):
Fix editing a submodule via inline edit.
* [Issue 4069](https://bugs.chromium.org/p/gerrit/issues/detail?id=4069):
Fix highlights in scrollbar overview ruler not moved when extending the
displayed area.
* [Issue 3446](https://bugs.chromium.org/p/gerrit/issues/detail?id=3446):
Respect the `Skip Deleted` diff preference.
* [Issue 3445](https://bugs.chromium.org/p/gerrit/issues/detail?id=3445):
Respect the `Skip Uncommented` diff preference.
* [Issue 4051](https://bugs.chromium.org/p/gerrit/issues/detail?id=4051):
Fix empty `From` email header.
* [Issue 3423](https://bugs.chromium.org/p/gerrit/issues/detail?id=3423):
Fix intraline diff for added spaces.
* [Issue 1867](https://bugs.chromium.org/p/gerrit/issues/detail?id=1867):
Remove `no changes made` error case when the only difference between a new
commit and the previous patch set of the change is the committer.
* [Issue 3831](https://bugs.chromium.org/p/gerrit/issues/detail?id=3831):
Prevent creating groups with the same name as a system group.
* [Issue 3754](https://bugs.chromium.org/p/gerrit/issues/detail?id=3754):
Fix `View All Accounts` permission to allow accounts REST endpoint to access
email info.
* Make `gitweb.type` default to `disabled` when not explicitly set.
Previously the behavior was not documented and it would default to type
`gitweb`. In cases where there was no gitweb config at all, this would
result in broken links due to `null` being used as the URL.
* [Issue 4488](https://bugs.chromium.org/p/gerrit/issues/detail?id=4488):
Improve error message when `Change-Id` line is missing in commit message.
The error message now includes the sha1 of the commit, so that it is
easier to track down which commit failed validation when multiple commits
are pushed at the same time.
* Don't check mergeability of draft changes.
Draft changes can be deleted but not abandoned so there is no way for
an administrator to get rid of the them on behalf of the users. This can
become a problem when there many draft changes because the mergeability
check can be costly.
The mergeability check is no longer done for draft changes, but will be
done when the draft change is published.
* Fix internal server error when plugin-provided file history weblink
is null.
It is valid for a plugin to provide a null weblink, but doing so resulted
in an internal server error.
## Dependency Updates
* Add dependency on blame-cache 0.1-9
* Add dependency on guava-retrying 2.0.0
* Add dependency on jsr305 3.0.1
* Add dependency on metrics-core 3.1.2
* Upgrade auto-value to 1.3-rc1
* Upgrade commons-net to 3.5
* Upgrade CodeMirror to 5.17.0
* Upgrade Guava to 19.0
* Upgrade Gson to 2.7
* Upgrade Guice to 4.1.0
* Upgrade gwtjsonrpc to 1.9
* Upgrade gwtorm to 1.15
* Upgrade javassist to 3.20.0-GA
* Upgrade Jetty to 9.2.14.v20151106
* Upgrade JGit to 4.5.0.201609210915-r
* Upgrade joda-convert to 1.8.1
* Upgrade joda-time to 2.9.4
* Upgrade Lucene to 5.5.0
* Upgrade mina to 2.0.10
* Upgrade sshd-core to 1.2.0
## Bugfix Releases
### 2.13.8 {#2.13.8}
* Improvements in "reviewed" flags cache
* [Issue 5906](https://bugs.chromium.org/p/gerrit/issues/detail?id=5906):
Fix performance regression.
* Fix SQL statements used to clear "reviewed" flags.
The SQL statements were using `+` rather than `=` which resulted in
more entries than expected being deleted.
* Fix `file_name` column length.
* Upgrade JGit to 4.5.2.201704071617-r.
This includes more fixes for handling of invalid packfiles. See
[JGit bug 514170](https://bugs.eclipse.org/bugs/show_bug.cgi?id=514170)
for details.
* [Issue 5817](https://bugs.chromium.org/p/gerrit/issues/detail?id=5817):
Be more consistent about object ids used in ref operation validation.
The `ReceiveCommand` passed to `RefOperationValidationListener` did not
always have the old and new objectd Ids set, which could result in crashes
when dereferenced by plugins.
* Fix potential server error when extracting footer lines from commits.
* Fix merging a merge commit that refers to commits not submitted as changes.
* Fix redundant notifications on change screen.
* Allow project owner to use set-project ssh command.
REST API and UI allow project owner to change the project settings so
inconsistency is fixed by allowing the same in the ssh command.
* Add an `account indexed` extension point.
Similar to the existing `change indexed` extension point, this allows plugins
to be notified when an account has been indexed.
### 2.13.7 {#2.13.7}
* Prevent circular module dependency when running in external container.
Since 2.13 it was not possible to run Gerrit in an external container
due to circular dependency between the database module and the note DB
migration module.
This is fixed, but the site path must be explicitly set in a system
property: `-Dgerrit.site_path=/path/to/gerrit`.
* Use submitter's identity for merge commit in Rebase if Necessary.
When a merge commit was not fast-forward, gerrit created a "merge of merge"
commit with its server identity instead of the submitter's identity.
* [Issue 4637](https://bugs.chromium.org/p/gerrit/issues/detail?id=4637):
Fix "Class not found" errors when running on IBM JDK.
The metrics module had a dependency on com.sun internal classes that
are not available in the JRE from other providers such as IBM, resulting
in ClassNotFound exceptions when initializing the CPU usage metric.
* [Issue 5689](https://bugs.chromium.org/p/gerrit/issues/detail?id=5689):
Fix internal server error when directory in git root is inaccessible.
If a directory in the site's git root was not accessible, an internal
server error prevented the list of projects from being populated.
* [Issue 5652](https://bugs.chromium.org/p/gerrit/issues/detail?id=5652):
reviewnotes plugin: Fix export of review notes.
* [Issue 5190](https://bugs.chromium.org/p/gerrit/issues/detail?id=5190):
Fix email notifications when adding new reviewers.
* [Issue 5055](https://bugs.chromium.org/p/gerrit/issues/detail?id=5055):
Fix cache eviction order when linking new external IDs.
* [Issue 5727](https://bugs.chromium.org/p/gerrit/issues/detail?id=5727):
Fix failure to start when JVM does not support CPU and file descripto metrics.
* Allow to continue reindex despite failures.
If indexing a change failed for some reason, indexing would be stopped
and remaining changes would not be indexed. Now an error message will
be displayed and indexing will continue.
* Allow user with "Maintain Server" permission to find all changes.
Allowing users delegated to maintain the server to find non-visible
changes in the CLI allows them to perform ad-hoc indexing.
* Fix deletion of the last file from config branch.
If the last file was deleted from the config branch, the file was not
actually deleted and the original content was kept. For example this
occurred when deleting all project watches when the `watch.config` file
was the only file on the branch.
* Support at-sign (`@`) in usernames.
Some federated identity systems, such as [Shibboleth](https://shibboleth.net/),
use login names including the at-sign.
* Enable systemd socket activation.
By setting
[`httpd.inheritChannel`](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13/config-gerrit.html#httpd.inheritchannel)
to true, the server can be socket activated by `systemd` or `xinetd`.
* Be more consistent about object ids used in ref operation validation.
In some cases the new and old Ids were not set, which could cause null
pointer exceptions in ref operation validations listeners trying to
dereference them.
* Upgrade JGit to 4.5.1.201703201650-r.
Among other bug fixes, this version includes a fix for packfile list
inconsistency in memory due to temporary lack of system resources during
read, which caused transient "file not found" errors.
### 2.13.6 {#2.13.6}
* Allow Git LFS to authenticate via SSH.
LFS plugins can now provide an implementation of `git-lfs-authenticate`
which allows the Git LFS client to use the SSH protocol to either obtain
the LFS endpoint URL or authorize the following LFS upload/download
operation.
* Allow Git LFS to authenticate via HTTP.
Git LFS requests include the authorization as HTTP Basic but
this was ignored and the user was treated as anonymous.
* Don't require Add Patch Set permission for submit by rebase.
When the submit strategy was Rebase If Necessary and
a rebase was needed for the submit, the submit failed if the user
didn't have the Add Patch Set permission. However for submitting a
change the Submit permission alone should be sufficient.
The behavior is now consistent with the Cherry-Pick submit strategy
which also doesn't require the Add Patch Set permission if a
cherry-pick is done on submit.
* Add a [passwd program](https://gerrit-documentation.storage.googleapis.com/Documentation/2.13.6/pgm-passwd.html)
to set values in the `secure.config` file when a secure store implementation
is used.
* Allow plugins to define their own prefix for metrics reporting.
By setting `plugin.name.metricsPrefix` plugins can set the root
name under which their metrics are reported.
* Allow HTTP password when using LDAP and basic authentication.
It was not possible to use HTTP password to validate git over
HTTP and REST API requests if LDAP was used along with HTTP basic
authentication.
* Allow callers to define notify handling when adding reviewers to a
change by REST API.
* [Issue 4563](https://bugs.chromium.org/p/gerrit/issues/detail?id=4563):
Only send one email when reviewers are added to a change in bulk.
* [Issue 5237](https://bugs.chromium.org/p/gerrit/issues/detail?id=5237):
Don't truncate long lines in diff screens.
* [Issue 5298](https://bugs.chromium.org/p/gerrit/issues/detail?id=5298):
Fix history token in Groups screen's "Members" tab.
* Fix garbled text with Unicode display names obtained from HTTP headers.
* Make error message for rejecting Egit placeholder Change-Id consistent.
* Fix naming and prompt message for password entry in init steps.
* Fix Gitweb review link generation.
* Hooks plugin: emit metrics for hook execution latency, count, and errors.
* Submodule fixes
* Don't use fast-forward to update submodule subscription when superproject
has a merge submit strategy.
* Fix sorting of subscribed branches in submodule update.
* Fix handling of submodule config entries.
* Fix ordering of projects in submodule update.
### 2.13.5 {#2.13.5}
* [Issue 5200](https://bugs.chromium.org/p/gerrit/issues/detail?id=5200):
Ensure that indexes are closed properly on shutdown.
The indexes were not closed on shutdown, which caused data to be lost
due to not being flushed to disk.
* Enable the 'Delete Edit' button for merged changes.
If a merged change has an edit revision, it should still be possible
to delete the edit.
* Do not check visibility of parent project when creating a new project.
A project can be visible to a user but not necessarily its parent. To
be consistent, a user with create-project permission should be able to
create a project with a parent that exists even if the parent is not
visible to the user.
* Fix 'Can't insert change/patch set' error when prior patch set has no
parent, but next patch set has 1 parent.
* [Issue 5179](https://bugs.chromium.org/p/gerrit/issues/detail?id=5179):
Make startup timeout configurable.
By setting `container.startupTimeout` it is possible to configure the
maximum time to wait for the `gerrit.sh start` command to run a new
Gerrit daemon successfully.
* [Issue 4715](https://bugs.chromium.org/p/gerrit/issues/detail?id=4715):
Add missing reviewers visibility check for suggestions from account index.
* Fix Gitweb HTTP URL generation.
The generated Gitweb URL contained an invalid 'p' character, and did
not require authentication for projects not visible to anonymous users.
### 2.13.4 {#2.13.4}
* [Issue 5090](https://bugs.chromium.org/p/gerrit/issues/detail?id=5090):
Fix overwriting of another user's account external Id.
* [Issue 4909](https://bugs.chromium.org/p/gerrit/issues/detail?id=4909):
Fix broken Gitweb weblink for config history on project access page.
* [Issue 4908](https://bugs.chromium.org/p/gerrit/issues/detail?id=4908):
Add back support for parent revision weblinks.
Support for weblinks for the parent revision(s) was removed in 2.13 but
this functionality is still wanted by some users. Support is added back,
by allowing plugins to provide a specific link for parent revisions. For
the built-in Gitweb links, the link template provided by the `revision`
setting is used.
* Add DB connection pool verification.
There was no verification of the connection pool, so a broken connection
would result in an internal server error when trying to read a change
from the database.
* Add support for moving a change's destination branch with the SSH `review`
command.
Version 2.13 introduced the 'move change' REST endpoint, but support via ssh
was omitted.
* Add REST endpoint to reindex a single account.
The new endpoint is useful to manually reindex a single account that has
become stale in the index.
### 2.13.3 {#2.13.3}
* [Issue 4633](https://bugs.chromium.org/p/gerrit/issues/detail?id=4633):
Filter out unrelated projects when getting project watches from index.
* [Issue 4848](https://bugs.chromium.org/p/gerrit/issues/detail?id=4848):
Upgrade Postgresql JDBC driver to 9.4.1211.jre7.
Older versions of Postgresql JDBC driver rely on finalize() methods in
order to avoid leaking unclosed database objects. Given finalize
methods are unpredictable (no guarantee about prompt execution, if at
all), in some high load environments this could lead to a memory leak
with millions of JDBC objects pending finalization.
* [Issue 4841](https://bugs.chromium.org/p/gerrit/issues/detail?id=4841):
Hooks plugin: Make sure `GIT_DIR` environment variable is set in `ref-update`
hook.
* [Issue 4911](https://bugs.chromium.org/p/gerrit/issues/detail?id=4911):
Fix internal server error when providing an invalid Change-Id to the
index ssh command.
* [Issue 4643](https://bugs.chromium.org/p/gerrit/issues/detail?id=4643):
Strip newlines out of ssh public keys.
If an ssh public key contained newlines, each line was migrated to the
git backend as a separate key, each of which was considered invalid. Now,
newlines are stripped out. Note that this fix is not effective for sites
that have already been migrated to 2.13.x from an earlier version.
* Restore the `--format` option on the list plugins REST API endpoint.
Removing the `--format` option from the REST API had the side effect of
also removing it from the corresponding ssh command, which was a breaking
change for some users.
* Fix classpath collision with Servlet API for GWT plugins.
* Hooks plugin: Always return the output from the `ref-update` hook.
The output of the `ref-update` hook is now sent back to the client.
* Fix migration to schema version 127 on case-sensitive file systems.
* Fix internal server error when using `has:draft` search predicate.
* Fix internal server error caused by plugin returning null for
external included-in.
* Fix internal server error in `set-members` command when a group
to be added is not visible to the caller.
* Fix reindexing change by ssh command.
When reindexing a change by ssh, the change was loaded from the
index rather than from the database.
* Export prolog runtime in plugin API.
### 2.13.2 {#2.13.2}
* Allow to delete caches if not empty when initializing site during upgrade.
Caches may be stale during upgrade, so the init program now offers to
delete them.
A new `--delete-caches` option is added to allow force delete of all
caches.
* [Issue 4797](https://bugs.chromium.org/p/gerrit/issues/detail?id=4797):
Fix internal server error in OAuth extension point when E-Mail is not set.
* [Issue 4784](https://bugs.chromium.org/p/gerrit/issues/detail?id=4784):
Allow to edit user name for OAuth providers that don't expose user names.
* [Issue 4627](https://bugs.chromium.org/p/gerrit/issues/detail?id=4627):
Fix internal server error in OAuth extension point when user name is not set.
* [Issue 4466](https://bugs.chromium.org/p/gerrit/issues/detail?id=4466):
Fix deadlock during Lucene index shutdown.
* Index account on account creation
This prevents creation of new accounts on every logout/login sequence.
* Add support for Microsoft Internet Explorer 10 and 11, and Microsoft Edge.
* [Issue 4630](https://bugs.chromium.org/p/gerrit/issues/detail?id=4630):
Fix server error when navigating up to change while 'Working' is displayed.
* [Issue 4631](https://bugs.chromium.org/p/gerrit/issues/detail?id=4631):
Read project watches from database.
Project watches were being read from the git backend by default, but the
migration to git is not yet completed.
* [Issue 4632](https://bugs.chromium.org/p/gerrit/issues/detail?id=4632):
Fix server error when deleting multiple SSH keys from the Web UI.
Attempting to delete multiple keys in parallel resulted in a lock failure
when removing the keys from the git backend.
* [Issue 4645](https://bugs.chromium.org/p/gerrit/issues/detail?id=4645):
Fix malformed account suggestions.
If the query contained several query terms and one of the query terms was
a substring of 'strong', the suggestion was malformed.
* Hooks plugin: Fix incorrect value passed to `--change-url` parameter.
The URL was being generated using the change's Change-Id rather than the
change number.
* Replication plugin: Fix Guava ProvisionException when replicating from slave.
* Check for CLA when creating project config changes from the web UI.
If contributor agreements were enabled and required for a project, and
the user had not signed a CLA, it was still possible to upload changes
for review on `refs/meta/config` by making changes in the project access
editor and pressing 'Save for Review'.
* Fix server errors in 'Set Access' and 'Get Access' REST enpoints.
* Stability improvements in event dispatch mechanism.
### 2.13.1 {#2.13.1}
* [Issue 4618](https://bugs.chromium.org/p/gerrit/issues/detail?id=4618):
Fix internal server error after online reindexing completed.
* Fix internal server error when cloning from slaves and not all refs are
visible.
* Fix JSON deserialization error causing stream event client to no longer receive
events.