Release notes for Gerrit 2.11.2
===============================

Gerrit 2.11.2 is now available:

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

Gerrit 2.11.2 includes the bug fixes done with
link:ReleaseNotes-2.10.6.html[Gerrit 2.10.6]. These bug fixes are *not* listed
in these release notes.

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

New Features
------------

New SSH commands:

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11.2/cmd-index-start.html[
`index start`]
+
Allows to restart the online indexer without restarting the Gerrit server.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11.2/cmd-index-activate.html[
`index activate`]
+
Allows to activate the latest index version even if the indexing encountered
problems.


Bug Fixes
---------

* link:https://code.google.com/p/gerrit/issues/detail?id=2761[Issue 2761]:
Fix incorrect file list when comparing patchsets.
+
When comparing a patchset with another one, the added and deleted files were not
displayed properly.

* link:https://code.google.com/p/gerrit/issues/detail?id=3460[Issue 3460]:
Fix regression in the search box auto-suggestions.
+
A change introduced in version 2.11 caused the auto-suggestions to not work
any more.

* link:https://code.google.com/p/gerrit/issues/detail?id=3355[Issue 3355]:
Fix corruption of database when deleting draft change ref fails.

* link:https://code.google.com/p/gerrit/issues/detail?id=3426[Issue 3426]:
Fix regression in the `%base` option.
+
A change introduced in version 2.11 caused the `%base` option to not work
any more, meaning it was not possible to push a commit, which is already merged
into a branch, for review to another branch of the same project.

* link:https://bugs.eclipse.org/bugs/show_bug.cgi?id=468024[JGit bug 468024]:
Fix data loss if a pack is pushed to a JGit based server and gc runs
concurrently on the same repository.

* link:https://code.google.com/p/gerrit/issues/detail?id=3371[Issue 3371]:
Fix wrong date/time for commits in `refs/meta/config` branch.
+
When the `refs/meta/config` branch was modified using the PutConfig REST endpoint
(e.g. when changing the project configuration in the web UI) the commit date/time
was wrong. Instead of the actual date/time the date/time of the last Gerrit server
start was used.

* Fix NullPointerException in the 'related changes' REST API endpoint.

* Make sure `/a` is not in the project name for git-over-http requests.
+
The `/a` prefix is used to trigger authentication but was not removed from the
request. Therefore, it was included in the project name and hence the project
wasn't found when performing, for example `git fetch http://server/a/project`.

* Fix disabling of git ssh commands.
+
The ssh commands were available even when ssh commands were disabled.

* Fix native string handling in Plugin API.
+
The results of REST API calls were incorrectly being converted from NativeString
to String when called from Javascript.

* link:https://code.google.com/p/gerrit/issues/detail?id=3440[Issue 3440]:
Include prettify source files in the documentation.
+
The prettify source files were being loaded from `cdnjs.cloudflare.com`, which
may cause trouble if the Gerrit instance is behind a firewall on a machine not
allowed to access the Internet at large.
+
Now those files are bundled with the documentation.

* Print proper name for project indexer tasks in `show-queue` command.

* Print proper name for reindex after update tasks in `show-queue` command.

Updates
-------

* Update JGit to 4.0.1.201506240215-r.

