| = Release notes for Gerrit 2.11 | 
 |  | 
 |  | 
 | Gerrit 2.11 is now available: | 
 |  | 
 | link:https://www.gerritcodereview.com/download/gerrit-2.11.war[ | 
 | https://www.gerritcodereview.com/download/gerrit-2.11.war] | 
 |  | 
 | Gerrit 2.11 includes the bug fixes done with | 
 | link:ReleaseNotes-2.10.1.html[Gerrit 2.10.1], | 
 | link:ReleaseNotes-2.10.2.html[Gerrit 2.10.2] and | 
 | link:ReleaseNotes-2.10.3.html[Gerrit 2.10.3]. | 
 | These bug fixes are *not* listed in these release notes. | 
 |  | 
 |  | 
 | == Important Notes | 
 |  | 
 |  | 
 | *WARNING:* This release contains schema changes.  To upgrade: | 
 | ---- | 
 |   java -jar gerrit.war init -d site_path | 
 | ---- | 
 |  | 
 | Gerrit 2.11 requires a secondary index, which can be created offline | 
 | by running the `reindex` program: | 
 |  | 
 | ---- | 
 |   java -jar gerrit.war reindex -d site_path | 
 | ---- | 
 |  | 
 | If the site that is upgraded already has a secondary index, the | 
 | secondary index can be upgraded online. This is important for large | 
 | sites since running the `reindex` program can take a long time and | 
 | contributes significantly to the downtime that is required for the | 
 | upgrade. | 
 |  | 
 | Gerrit 2.11 supports online reindexing only from the index version `11` | 
 | which is the index version of Gerrit 2.10. This means if you come from | 
 | an older release it makes sense to first upgrade to 2.10 and then do | 
 | the upgrade to 2.11 so that you can profit from online reindexing. | 
 |  | 
 | In case you are upgrading from 2.10 it is *important* to check *before* | 
 | the upgrade to 2.11 that the index version of your Gerrit 2.10 site is | 
 | `11`. You can check the index version in | 
 | `$site_path/index/gerrit_index.config`. Your Gerrit 2.10 site may run | 
 | with an older index version (e.g. if online reindexing to index version | 
 | `11` is still running or if online reindexing to version `11` has | 
 | failed). In this case you first need to successfully migrate your index | 
 | version of your Gerrit 2.10 site to `11` and only then start with the | 
 | 2.11 upgrade. If you start the 2.11 upgrade when the schema version of | 
 | your Gerrit 2.10 site is older than `11`, online reindexing is no longer | 
 | possible and you need to reindex offline by using the `reindex` program. | 
 |  | 
 | *WARNING:* Upgrading to 2.11.x requires the server be first upgraded to 2.8 (or | 
 | 2.9) and then to 2.11.x. If you are upgrading from 2.8.x or later, you may ignore | 
 | this warning and upgrade directly to 2.11.x. | 
 |  | 
 | *WARNING:* When upgrading from version 2.8.4 or older with a site that uses | 
 | Bouncy Castle Crypto, new versions of the libraries will be downloaded. The old | 
 | libraries should be manually removed from site's `lib` folder to prevent the | 
 | startup failure described in | 
 | link:https://code.google.com/p/gerrit/issues/detail?id=3084[Issue 3084]. | 
 |  | 
 | *WARNING:* The 'Generate HTTP Password' capability has been | 
 | link:#remove-generate-http-password-capability[removed]. | 
 |  | 
 | *WARNING:* Google will | 
 | link:https://developers.google.com/+/api/auth-migration[shut down their OpenID | 
 | service on 20th April 2015]. Administrators of sites whose users are registered | 
 | with Google OpenID accounts should encourage the users to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-sso.html#_multiple_identities[ | 
 | add an alternative identity to their account] before this date. Users who do | 
 | not add an alternative identity before this date will need to create a new | 
 | account and ask the site administrator to | 
 | link:https://code.google.com/p/gerrit/wiki/SqlMergeUserAccounts[merge it]. | 
 |  | 
 | *WARNING:* The | 
 | link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[ | 
 | Edit Commit Message] REST API endpoint is removed | 
 |  | 
 | *WARNING:* The deprecated '/query' URL is removed and will now return `Not Found`. | 
 |  | 
 | == Release Highlights | 
 |  | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=505[Issue 505]: | 
 | Changes can be created and edited directly in the browser. See the | 
 | link:#inline-editing[Inline editing] section for more details. | 
 |  | 
 | * Many improvements in the new change screen. | 
 |  | 
 | * The old change screen is removed. | 
 |  | 
 |  | 
 | == New Features | 
 |  | 
 |  | 
 | === Web UI | 
 |  | 
 | [[inline-editing]] | 
 | ==== Inline Editing | 
 |  | 
 | Refer to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/user-inline-edit.html[ | 
 | inline editing user guide] for detailed instructions. | 
 |  | 
 | * New changes can be created directly in the browser via a 'Create Change' | 
 | button on the project info screen. | 
 |  | 
 | * New follow-up changes can be created via a 'Follow-Up' button on the change | 
 | screen. | 
 |  | 
 | * File content can be edited in a full screen CodeMirror editor with support for | 
 | themes and syntax highlighting. | 
 |  | 
 | * The CodeMirror screen can be configured in the same way as the side-by-side | 
 | diff screen. | 
 |  | 
 | * The file table in the change screen supports seamless navigation to the | 
 | CodeMirror editor. | 
 |  | 
 | * Edit mode can be started from the side-by-side diff screen with seamless | 
 | navigation to the CodeMirror editor. | 
 |  | 
 | * The commit message must now be changed in the context of a change edit. The | 
 | 'Edit Message' button is removed from the change screen. | 
 |  | 
 | * Files can be added, deleted, restored and modified directly in browser. | 
 |  | 
 | ==== Change Screen | 
 |  | 
 | * Remove the 'Edit Message' button from the change screen. | 
 | + | 
 | The commit message is now edited using the inline edit feature. | 
 |  | 
 | * Add support for changing parent revision with the 'Rebase' button. | 
 | + | 
 | Using the 'Rebase' button it is now possible to rebase a change onto a | 
 | different change (on the same destination branch), rather than only onto the | 
 | head of the destination branch or the latest patch set of the predecessor change. | 
 |  | 
 | * Show the parent commit's subject as a tooltip. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=2541[Issue 2541], | 
 | link:http://code.google.com/p/gerrit/issues/detail?id=2974[Issue 2974]: | 
 | Allow the 'Reply' button's | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#change.replyLabel[ | 
 | label and tooltip] to be configured. | 
 |  | 
 | * Improve file sorting for C and C++ files. | 
 | + | 
 | Header files are now listed before implementation files. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3148[Issue 3148]: | 
 | Allow display of colored size bars to be enabled or disabled per user. | 
 | + | 
 | The 'Show Change Sizes As Colored Bars In Changes Table' setting is renamed to | 
 | 'Show Change Sizes As Colored Bars' and is now used to also control how the | 
 | change size is shown per file in the file table. | 
 | + | 
 | When enabled (which is the default), the change size per file is shown as a sum | 
 | of lines added/removed, and also representated by a colored bar showing the | 
 | proportion of added/removed lines. | 
 | + | 
 | When disabled, the colored bar is not shown and the change size per file is shown | 
 | in the same way as it used to be in the old change screen. | 
 |  | 
 | * Show changes across all projects and branches in the `Same Topic` tab. | 
 |  | 
 |  | 
 | ==== Side-By-Side Diff | 
 |  | 
 | * New button to switch between side-by-side diff and unified diff. | 
 |  | 
 | * New preference setting to toggle auto-hiding of the diff table header. | 
 | + | 
 | The setting determines whether or not the diff table header with the patch set | 
 | selection should be automatically hidden when scrolling down more than half of | 
 | a page. | 
 |  | 
 | * Highlight search results on scrollbar. | 
 | + | 
 | Search results in vim mode are highlighted in the scrollbar with gold | 
 | colored annotations. | 
 |  | 
 | * Set line length to 72 characters for commit messages. | 
 |  | 
 | * Add syntax highlighting for several new modes: | 
 |  | 
 | ** link:https://code.google.com/p/gerrit/issues/detail?id=2848[Issue 2848]: CSharp | 
 | ** Dart | 
 | ** Dockerfile | 
 | ** GLSL shader | 
 | ** Go | 
 | ** Objective C | 
 | ** RELAX NG | 
 | ** link:http://code.google.com/p/gerrit/issues/detail?id=2779[Issue 2779]: reStructured text | 
 | ** Soy | 
 |  | 
 |  | 
 | ==== Projects Screen | 
 |  | 
 | * Add pagination and filtering on the branch list page. | 
 |  | 
 | * Add an 'Edit Config' button on the project info page. | 
 | + | 
 | The button creates a new change on the `refs/meta/config` branch and opens the | 
 | `project.config` file in the inline editor. | 
 | + | 
 | This allows project owners to easily edit the `project.config` file from the | 
 | browser, which is useful since it is possible that not all configuration options | 
 | are available in the UI. | 
 |  | 
 | === REST | 
 |  | 
 | ==== Accounts | 
 |  | 
 | * Add new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#suggest-account[ | 
 | Suggest Account endpoint]. | 
 |  | 
 | ==== Changes | 
 |  | 
 | * The link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[ | 
 | Edit Commit Message] endpoint is removed in favor of the new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[ | 
 | Change commit message in Change Edit] and | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[ | 
 | Publish Change Edit] endpoints. | 
 |  | 
 | * Add new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#check-change[ | 
 | Check Change endpoint]. | 
 | + | 
 | In the past, Gerrit bugs, lack of transactions, and unreliable NoSQL backends | 
 | have at various times produced a bewildering variety of corrupt states. | 
 | + | 
 | This endpoint can be used to detect, explain, and repair some of these possible | 
 | states of a change. | 
 |  | 
 | * Add new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-revision-actions[ | 
 | Get Revision Actions endpoint]. | 
 |  | 
 | * Add | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#change-actions[ | 
 | `CHANGE_ACTIONS`] option on the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-change-detail[ | 
 | Get Change Detail] endpoint. | 
 |  | 
 |  | 
 | ==== Change Edits | 
 |  | 
 | Several new endpoints are added to support the inline edit feature. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-detail[ | 
 | Get Edit Detail]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-edit-file[ | 
 | Change file content in Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#post-edit[ | 
 | Restore file content in Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[ | 
 | Change commit message in Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit-file[ | 
 | Delete file in Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-file[ | 
 | Retrieve file content from Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-message[ | 
 | Retrieve commit message from Change Edit or current patch set of the change]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[ | 
 | Publish Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#rebase-edit[ | 
 | Rebase Change Edit]. | 
 |  | 
 | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit[ | 
 | Delete Change Edit]. | 
 |  | 
 |  | 
 | ==== Projects | 
 |  | 
 | * Add new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#delete-branches[ | 
 | Delete Branches] endpoint. | 
 |  | 
 | * Add filtering and pagination options on the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-branches[ | 
 | List Branches] endpoint. | 
 |  | 
 | * Add new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-tags[ | 
 | List Tags] endpoint. | 
 |  | 
 | * Add new | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#get-tag[ | 
 | Get Tag] endpoint. | 
 |  | 
 |  | 
 | === Configuration | 
 |  | 
 | * Add support for | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#auth.httpExternalIdHeader[ | 
 | HTTP external ID header]. | 
 | + | 
 | This can be used when authenticating with a federated identity token from | 
 | an external system, e.g. GitHub's OAuth 2.0 authentication. | 
 |  | 
 | * Add | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-labels.html#label_copyAllScoresIfNoChange[ | 
 | `copyAllScoresIfNoChange`] setting for labels. | 
 | + | 
 | Allows to copy scores forward when a new patch set is uploaded that has the same | 
 | parent tree, code delta, and commit message as the previous patch set. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2786[Issue 2786]: | 
 | Allow non-administrators to modify user accounts. | 
 | + | 
 | A new global capability, | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_modifyAccount[ | 
 | 'Modify Account'], which allows the granted group members to modify user account | 
 | settings via the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
 | `set-account` SSH command]. | 
 | + | 
 | Modification of users' SSH keys is still restricted to administrators. | 
 |  | 
 | * Add support for | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#ldap.useConnectionPooling[ | 
 | LDAP connection pooling]. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=699[Issue 699]: Allow to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#receive.maxBatchChanges[ | 
 | limit max number of changes pushed in a batch]. | 
 | + | 
 | Can be overridden by members of groups that are granted the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_batchChangesLimit[ | 
 | Batch Changes Limit] capability. | 
 |  | 
 | * Allow to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.disableReverseDnsLookup[ | 
 | disable reverse DNS lookup]. | 
 | + | 
 | This option can be set to improve push time from hosts without a reverse DNS | 
 | entry. | 
 |  | 
 | * Allow to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#cache.projects.loadOnStartup[ | 
 | load the project cache at server startup]. | 
 |  | 
 | * Allow members of groups granted the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_accessDatabase[ | 
 | AccessDatabase capability] to view metadata refs. | 
 |  | 
 | * Allow to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#http.addUserAsRequestAttribute[ | 
 | add the user to the http request attributes]. | 
 |  | 
 | * Allow to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearch[ | 
 | enable full text search in memory for review suggestions]. | 
 | + | 
 | The maximum number of reviewers evaluated can be limited with | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearchMaxMatches[ | 
 | suggest.fullTextSearchMaxMatches]. | 
 |  | 
 | * Allow to provide an alternative | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.secureStoreClass[ | 
 | secure store implementation]. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=1195[Issue 1195]: | 
 | Allow projects to be configured to create a new change for every uploaded commit that is not in the target branch. | 
 |  | 
 | * Allow to configure | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#container.daemonOpt[ | 
 | options to pass to the daemon]. | 
 |  | 
 | === Daemon | 
 |  | 
 | * Allow to enable the http daemon when running in slave mode. | 
 | + | 
 | The `--enable-httpd` option can be used in conjunction with the `--slave` option | 
 | to allow clients to fetch from the slave over the http protocol. | 
 | + | 
 | HTTP Authentication may also be used when running in slave mode. | 
 |  | 
 | * Include the submitter's name in the change message when a change is submitted. | 
 |  | 
 | * Add a message to changes created via cherry pick. | 
 | + | 
 | When a change is cherry-picked to another branch using the cherry-pick action, | 
 | the message 'Patch Set <number>: Cherry Picked from branch <name>.' is added as | 
 | a change message on the created change. | 
 |  | 
 | * Don't send 'new patch set' notification emails for trivial rebases. | 
 |  | 
 |  | 
 | === SSH | 
 |  | 
 | * Add new commands | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-ls-level.html[ | 
 | `logging ls-level`] and | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-set-level.html[ | 
 | `logging set-level`] to show and set the logging level at runtime. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=602[Issue 602]: | 
 | Add `--json` option to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[ | 
 | `review` SSH command]. | 
 | + | 
 | Review input can be given to the `review` command in JSON format corresponding | 
 | to the REST API's | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#review-input[ | 
 | ReviewInput] entity. | 
 |  | 
 | *  link:https://code.google.com/p/gerrit/issues/detail?id=2824[Issue 2824]: | 
 | Add `--rebase` option to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[ | 
 | `review` SSH command]. | 
 |  | 
 | * Add `--clear-http-password` option to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
 | `set-account` SSH command]. | 
 |  | 
 | * Add `--preferred-email` option to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[ | 
 | `set-account` SSH command]. | 
 |  | 
 | === Email | 
 |  | 
 | * Add `$change.originalSubject` field for email templates. | 
 | + | 
 | GMail threads messages together by subject and ignores the list headers included | 
 | by Gerrit. | 
 | + | 
 | Site administrators that run servers whose end-user base is mostly on GMail can | 
 | modify the site's `ChangeSubject.vm` template to use `$change.originalSubject` to | 
 | improve threading for GMail inboxes. | 
 | + | 
 | The `originalSubject` field is automatically taken from the existing subject | 
 | field during first use. | 
 |  | 
 |  | 
 | === Plugins | 
 |  | 
 | ==== General | 
 |  | 
 | * Plugins can listen to account group membership changes. | 
 | + | 
 | The audit log service allows to register listeners to group member added and | 
 | group member deleted events. A default listener logs these events to the database | 
 | as before, but additional listeners may now be registered for these events using | 
 | the `GroupMemberAuditListener` interface. | 
 |  | 
 | * Plugins can validate ref operations. | 
 | + | 
 | Plugins implementing the `RefOperationValidationListener` interface can | 
 | perform additional validation checks against ref creation/deletion operations | 
 | before they are applied to the git repository. | 
 |  | 
 | * Plugins can provide project-aware top menu extensions | 
 | + | 
 | Plugins can provide sub-menu items within the 'Projects' context. The | 
 | '$\{projectName\}' placeholder is replaced by the project name. | 
 |  | 
 | * Auto register static/init.js as JavaScript plugin. | 
 | + | 
 | When a plugin does not expose Guice Modules explicitly, auto discover and | 
 | register static/init.js as WebUi extension if found by the plugin content | 
 | scanner. | 
 |  | 
 | * Plugins can validate outgoing emails. | 
 | + | 
 | Plugins implementing `OutgoingEmailValidationListener` interface can filter | 
 | and modify outgoing emails before they are sent. | 
 |  | 
 | * Plugins that provide initialization steps may now use functionality | 
 | from InitUtil in core Gerrit. | 
 |  | 
 | * Plugins can post change reviews with historic timestamps. | 
 | + | 
 | This allows, for example, to write a plugin that can import a project including | 
 | review information from another Gerrit server. | 
 |  | 
 | * New extensions in the Java Plugin API: | 
 |  | 
 | ** Set/Put topic. | 
 | ** Get mergeable status. | 
 | ** link:https://code.google.com/p/gerrit/issues/detail?id=461[Issue 461]: | 
 | Get current user. | 
 | ** Get file content. | 
 | ** Get file diff. | 
 | ** Get comments and drafts. | 
 | ** Get change edit. | 
 |  | 
 | ==== Replication | 
 |  | 
 | * Projects can be specified with wildcard in the `start` command. | 
 |  | 
 |  | 
 | == Bug Fixes | 
 |  | 
 | === Daemon | 
 |  | 
 | * Change 'Merge topic' to 'Merge changes from topic'. | 
 | + | 
 | When multiple changes from a topic are submitted resulting in a merge commit, | 
 | the title of the merge commit is now 'Merge changes from topic' instead of | 
 | 'Merge topic'. | 
 |  | 
 | * Fix visibility checks for `refs/meta/config`. | 
 | + | 
 | Under some conditions it was possible for the `refs/meta/config` branch to be | 
 | erroneously considered not visible to the user. | 
 |  | 
 | * Sort list of updated changes in output from push. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2940[Issue 2940]: | 
 | Improve warning messages when `Change-Id` is missing in the commit message. | 
 |  | 
 | ** Add a hint to amend the commit after installing the commit-msg hook. | 
 | ** Don't show 'Suggestion for commit message' when `Change-Id` is missing. | 
 |  | 
 | * Allow to publish draft patch sets even when `allowDrafts` is false. | 
 | + | 
 | If a user uploaded a change while `allowDrafts` was enabled, and then it was | 
 | disabled by the administrator, the uploaded change could not be published and | 
 | was stuck in the draft state. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=3249[Issue 3249]: | 
 | Fix server error when checking mergeability of a change. | 
 |  | 
 | * Workaround Guice bug "getPathInfo not decoded". | 
 | + | 
 | Due to link:https://github.com/google/guice/issues/745[Guice issue 745], cloning | 
 | of a repository with a space in its name was impossible. | 
 |  | 
 |  | 
 | === Secondary Index / Search | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2822[Issue 2822]: | 
 | Improve Lucene analysis of words linked with underscore or dot. | 
 | + | 
 | Instead of treating words linked with underscore or dot as one word, Lucene now | 
 | treats them as separate words. | 
 |  | 
 | * Fix support for `change~branch~id` in query syntax. | 
 |  | 
 |  | 
 | === Configuration | 
 |  | 
 | [[remove-generate-http-password-capability]] | 
 | * Remove the 'Generate HTTP Password' capability. | 
 | + | 
 | The 'Generate HTTP Password' capability has been removed to close a security | 
 | vulnerability.  Now only administrators are allowed to generate and delete other | 
 | users' http passwords via the REST or SSH interface. | 
 | + | 
 | It is encouraged to clean up your `project.config` settings after upgrading. | 
 |  | 
 | * Fix support for multiple `footer` tokens in tracking ID config. | 
 | + | 
 | Contrary to | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#trackingid[ | 
 | the documentation], if more than one `footer` token was specified in the | 
 | `trackingid` section, only the first was used. | 
 |  | 
 | * Treat empty | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[ | 
 | `hooks.*`] values as missing, rather than trying to execute the hooks | 
 | directory. | 
 |  | 
 | * Fix `changed-merged` hook configuration. | 
 | + | 
 | Contrary to the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[ | 
 | documentation], the changed-merged hook configuration value was being | 
 | read from `hooks.changeMerged`. Fix to use `hooks.changeMergedHook` as | 
 | documented. | 
 |  | 
 | === Web UI | 
 |  | 
 | ==== Change List | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3304[Issue 3304]: | 
 | Always show a tooltip on the label column entries. | 
 |  | 
 | ==== Change Screen | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3147[Issue 3147]: | 
 | Allow to disable muting of common path prefixes in the file list. | 
 | + | 
 | In the file table, parts of the file path that are common to the file previously | 
 | listed are muted. The purpose of this is to make it easier to see files that all | 
 | belong under the same path, but some users find it annoying. | 
 | + | 
 | This feature can now be enabled or disabled, per user, with the 'Mute Common | 
 | Path Prefixes In File List' setting. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3130[Issue 3130]: | 
 | Remove special handling of 'LGTM' in review comments | 
 | + | 
 | Typing 'LGTM' in the review cover message no longer automatically selects the | 
 | highest available Code-Review score. | 
 |  | 
 | * Show a confirmation dialog before deleting a draft change or patch set. | 
 | + | 
 | Previously there was no confirmation and a draft change or revision patch | 
 | set would be lost if the button was accidentally clicked. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2533[Issue 2533]: | 
 | Improve the layout and color scheme of buttons. | 
 | + | 
 | Several improvements have been made: | 
 | + | 
 | ** Move 'Publish' and 'Delete Change/Revision' buttons into header. | 
 | + | 
 | If a change/revision is a draft the natural next step is to publish (or delete) | 
 | it, hence these buttons should be displayed in a more prominent place. | 
 |  | 
 | ** Highlight the 'Publish' button in blue. | 
 | + | 
 | If a change is a draft the natural next step is to publish it, hence | 
 | the 'Publish' button should be highlighted similar to the quick | 
 | approve button. | 
 |  | 
 | ** Fix the border color of buttons on the reply popup. | 
 | + | 
 | The buttons are blue but had white borders, which was inconsistent with the | 
 | buttons on the change screen. | 
 |  | 
 | ** Remove red color for 'Abandon' and 'Restore' buttons. | 
 | + | 
 | There is nothing dangerous about these operations that justifies | 
 | highlighting the buttons in red color. When the buttons are clicked | 
 | there is a popup where the user must confirm the operation, so it can | 
 | still be canceled. | 
 |  | 
 | ** Hide quick approve button for draft changes. | 
 | + | 
 | A draft change cannot be submitted, hence quick approving it is not that | 
 | important. Hiding the quick approve button on draft changes makes space in the | 
 | header for displaying more important actions such as 'Publish'. | 
 |  | 
 | * Differentiate between conflicts and already merged errors in cherry-pick | 
 | + | 
 | When a cherry-pick operation failed with 'Cherry pick failed' error, there was no | 
 | way to know the reason for the failure: merge conflict or the commit is already | 
 | on the target branch.  These failures are now differentiated and an appropriate | 
 | error is reported. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2837[Issue 2837]: | 
 | Improve display of long user names for collapsed comments in history. | 
 | + | 
 | If there were several users with long user names with the same prefix, e.g. | 
 | 'AutomaticGerritVoterLinux' and 'AutomaticGerritVoterWindows', they would both | 
 | be shown as 'AutomaticGerritVo...' and users had to expand the comment to see | 
 | the full user name. | 
 | + | 
 | The ellipsis is now inserted in the middle of the user name so that the start | 
 | and end of the user name are always visible, e.g. 'AutomaticG...VoterLinux' and | 
 | 'AutomaticG...terWindows'. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2992[Issue 2992]: | 
 | Fix display of review comments for Chrome on Android. | 
 | + | 
 | Chrome for Android has Font Boosting, which caused the review comments to | 
 | be displayed too large. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2909[Issue 2909]: | 
 | Make change owner votes removable. | 
 | + | 
 | If a change owner voted on a change, it was not possible for anyone other | 
 | than the owner to remove the vote. | 
 |  | 
 | * Preserve topic when cherry-picking. | 
 | + | 
 | When a change is cherry-picked, the topic from the source change is preserved | 
 | on the newly created change. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3007[Issue 3007]: | 
 | Make the selected tab persistent. | 
 | + | 
 | If a change from the 'Same Topic' tab was clicked, the selected tab would reset | 
 | to the default tab ('Related Changes'). | 
 |  | 
 | * Left-align column titles in the file list. | 
 |  | 
 | * Increase right margin of download box to make space for scrollbar. | 
 | + | 
 | Under some circumstances the browser's scrollbar would be shown over the | 
 | copy-to-clipboard icons in the download dropdown. | 
 |  | 
 | * Display +1 score's text next to the checkbox for simple boolean labels. | 
 | + | 
 | In the reply box, the text of the label score is displayed on the right hand | 
 | side when a score is selected, but this was missing for simple boolean labels. | 
 |  | 
 | * Don't show missing accounts as reviewer suggestions. | 
 |  | 
 | * Show the email address that matched the search in reviewer suggestions. | 
 | + | 
 | When matching accounts by email address against an external account, results | 
 | now show the email address that matched, not the preferred email address. | 
 |  | 
 | * Fix accidental reviewer selection on slow networks. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3120[Issue 3120]: | 
 | Align parent weblinks with parent commits in the commit box. | 
 |  | 
 |  | 
 | ==== Side-By-Side Diff | 
 |  | 
 | * Return to normal mode after editing a draft comment. | 
 | + | 
 | Previously it would remain in visual mode. | 
 |  | 
 | * Fix C++ header and source syntax highlighting | 
 | + | 
 | cpp and hpp files were sometimes rendered with C mode and not the extended C++ | 
 | mode.  This prevented keywords like `class` from being colored by the | 
 | highlighter. | 
 |  | 
 |  | 
 | ==== Project Screen | 
 |  | 
 | * Fix alignment of checkboxes on project access screen. | 
 | + | 
 | The 'Exclusive' checkbox was not aligned with the other checkboxes. | 
 |  | 
 | === REST API | 
 |  | 
 | ==== Changes | 
 |  | 
 | * Remove the administrator restriction on the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#index-change[ | 
 | index change] endpoint. | 
 | + | 
 | The endpoint can now be used by any user who has visibility of the change. | 
 |  | 
 | * Only include account ID in responses unless `DETAILED_ACCOUNTS` option is set. | 
 | + | 
 | The behavior was inconsistent with the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#account-info[ | 
 | documentation]. In the default case it was including only the account name, | 
 | rather than only the account ID. | 
 |  | 
 | * Include revision's ref in responses. | 
 | + | 
 | The ref of a revision was only returned as part of the fetch info, which is only | 
 | available if the download commands are installed. | 
 |  | 
 | * Correctly set the limit to the default when no limit is given in the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#suggest-reviewers[ | 
 | suggest reviewers] endpoint. | 
 |  | 
 | * Return correct response from 'delete draft' endpoints. | 
 | + | 
 | When the `change.allowDrafts` setting is False, it is not allowed to delete | 
 | draft changes or patch sets. | 
 | + | 
 | In this case the response `405 Method Not Allowed` is now returned, instead of | 
 | `409 Conflict`. | 
 |  | 
 |  | 
 | ==== Projects | 
 |  | 
 | * Make it mandatory to specify at least one of the `--prefix`, `--match` or `--regex` | 
 | options in the | 
 | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-projects[ | 
 | list projects] endpoint. | 
 |  | 
 | * link:https://code.google.com/p/gerrit/issues/detail?id=2706[Issue 2706]: | 
 | Do not delete branches concurrently. | 
 | + | 
 | Deleting multiple branches from the UI was resulting in a server error when | 
 | branches were in the packed-refs. | 
 |  | 
 | * Add retry logic for lock failure when deleting a branch. | 
 |  | 
 | * link:http://code.google.com/p/gerrit/issues/detail?id=3153[Issue 3153]: | 
 | Fix handling of project names ending with `.git`. | 
 | + | 
 | The projects REST API documentation states that the `.git` suffix will be | 
 | stripped off the input project name, if present. | 
 | + | 
 | This was working for the 'Create Project' endpoint, but not for any of the | 
 | others. | 
 |  | 
 |  | 
 | === Plugins | 
 |  | 
 | ==== Replication | 
 |  | 
 | * Create missing repositories on the remote when replicating with the git | 
 | protocol. | 
 |  | 
 | * Make `createMissingRepositories = false` take effect on `project-created` event. | 
 | + | 
 | Previously `createMissingRepositories = false` would prevent the replication | 
 | plugin from trying to create a new project when a `ref-updated` event was fired, | 
 | but when a `project-created` event was fired the replication plugin would try to | 
 | create a project on the remote. | 
 |  | 
 |  | 
 | == Upgrades | 
 |  | 
 | * Update Antlr to 3.5.2. | 
 |  | 
 | * Update ASM to 5.0.3. | 
 |  | 
 | * Update CodeMirror to 4.10.0-6-gd0a2dda. | 
 |  | 
 | * Update Guava to 18.0. | 
 |  | 
 | * Update Guice to 4.0-beta5. | 
 |  | 
 | * Update GWT to 2.7. | 
 |  | 
 | * Update gwtjsonrpc to 1.7-2-g272ca32. | 
 |  | 
 | * Update gwtorm to 1.14-14-gf54f1f1. | 
 |  | 
 | * Update Jetty to 9.2.9.v20150224. | 
 |  | 
 | * Update JGit to 3.7.0.201502260915-r.58-g65c379e. | 
 |  | 
 | * Update Lucene to 4.10.2. | 
 |  | 
 | * Update Parboiled to 1.1.7. | 
 |  | 
 | * Update Pegdown to 1.4.2. |