|  | = Release notes for Gerrit 2.10 | 
|  |  | 
|  |  | 
|  | Gerrit 2.10 is now available: | 
|  |  | 
|  | link:https://www.gerritcodereview.com/download/gerrit-2.10.war[ | 
|  | https://www.gerritcodereview.com/download/gerrit-2.10.war] | 
|  |  | 
|  | Gerrit 2.10 includes the bug fixes done with | 
|  | link:ReleaseNotes-2.9.1.html[Gerrit 2.9.1], | 
|  | link:ReleaseNotes-2.9.2.html[Gerrit 2.9.2], | 
|  | link:ReleaseNotes-2.9.3.html[Gerrit 2.9.3] and | 
|  | link:ReleaseNotes-2.9.4.html[Gerrit 2.9.4]. | 
|  | 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 | 
|  | ---- | 
|  |  | 
|  | *WARNING:* When upgrading from an existing site that was initialized with Gerrit | 
|  | version 2.6 to version 2.9.1, the primary key column order will be updated for | 
|  | some tables. It is therefore important to upgrade the site with the `init` program, | 
|  | rather than only copying the .war file over the existing one. | 
|  |  | 
|  | It is recommended to run the `init` program in interactive mode. Warnings will | 
|  | be suppressed in batch mode. | 
|  |  | 
|  | *WARNING:* Upgrading to 2.10.x requires the server be first upgraded to 2.8 | 
|  | (or 2.9) and then to 2.10.x. If you are upgrading from 2.8.x or | 
|  | later, you may ignore this warning and upgrade directly to 2.10.x. | 
|  |  | 
|  | *WARNING:* The `auth.allowGoogleAccountUpgrade` setting is no longer supported. | 
|  |  | 
|  | *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]. | 
|  |  | 
|  |  | 
|  | == Release Highlights | 
|  |  | 
|  |  | 
|  | * Support for externally loaded plugins. | 
|  | + | 
|  | Plugins can be implemented in Scala or Groovy using the | 
|  | link:https://gerrit-review.googlesource.com/\#/admin/projects/plugins/scripting/groovy-provider[ | 
|  | Groovy provider] and | 
|  | link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/scala-provider[ | 
|  | Scala provider] plugins. | 
|  |  | 
|  | * Customizable 'My' menu. | 
|  | + | 
|  | Users can customize the contents of the 'My' menu in the top menu.  Administrators | 
|  | can configure the default contents of the menu. | 
|  |  | 
|  |  | 
|  | == New Features | 
|  |  | 
|  |  | 
|  | === Web UI | 
|  |  | 
|  |  | 
|  | ==== Global | 
|  |  | 
|  | * Add 'All-Users' project to store meta data for all users. | 
|  |  | 
|  | * Administrators can customize the default contents of the 'My' menu. | 
|  |  | 
|  | * Add 'My' > 'Groups' menu entry that shows the list of own groups. | 
|  |  | 
|  | * Allow UiActions to perform redirects without JavaScript. | 
|  |  | 
|  |  | 
|  | ==== Change Screen | 
|  |  | 
|  |  | 
|  | * Display avatar for author, committer, and change owner. | 
|  |  | 
|  | * Remove message box when editing topic of change. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2573[Issue 2573]: | 
|  | Add option to quickly add current user as reviewer of a change. | 
|  | + | 
|  | An 'Add Me' button is displayed next to the 'Add' button when searching for | 
|  | reviewers to add to a change. This allows users to quickly add themselves as a | 
|  | reviewer on the change without having to type their name in the search | 
|  | box. | 
|  |  | 
|  | * Link project name to dashboard. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2667[Issue 2667]: | 
|  | Allow to customize Submit button label and tooltip. | 
|  |  | 
|  |  | 
|  | ==== Side-by-Side Diff Screen | 
|  |  | 
|  | * Allow the user to select the syntax highlighter. | 
|  |  | 
|  | * Add `Shift-a` keybinding to show/hide left side. | 
|  |  | 
|  | * Allow to toggle empty pane for added and deleted files. | 
|  |  | 
|  | * Add syntax highlighting of the commit message. | 
|  |  | 
|  |  | 
|  | ==== Change List / Dashboards | 
|  |  | 
|  | * Remove age operator when drilling down from a dashboard to a query. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2646[Issue 2646]: | 
|  | Add option to show Change-ID in the change table. | 
|  |  | 
|  | * Make the own user dashboard available under '/dashboard/self'. | 
|  |  | 
|  | * Add 'R' key binding to refresh custom dashboards. | 
|  | + | 
|  | Account dashboards, search results and the change screen refresh their content | 
|  | when 'R' is pressed.  The same binding is added for custom dashboards. | 
|  |  | 
|  |  | 
|  | ==== Project Screens | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2751[Issue 2751]: | 
|  | Add support for filtering by regex in project list screen. | 
|  |  | 
|  | * Disable content merge option if project's merge strategy is fast forward only. | 
|  |  | 
|  | * Add branch actions to 'Projects > Branches' view. | 
|  |  | 
|  | ==== User Preferences | 
|  |  | 
|  |  | 
|  | * Users can customize the contents of the 'My' menu from the preferences | 
|  | screen. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=2628[Issue 2628]: | 
|  | Replace 'Display name in review category' preference with a list of options. | 
|  | + | 
|  | Including new options 'Show Abbreviated Name' to display abbreviated reviewer | 
|  | names and 'Show Username' to show usernames in the change list. | 
|  |  | 
|  |  | 
|  | === Secondary Index / Search | 
|  |  | 
|  |  | 
|  | * Allow to search projects by prefix. | 
|  |  | 
|  | * Add search fields for number of changed lines. | 
|  |  | 
|  | * Add suggestions for 'is:pending' and 'status:pending'. | 
|  |  | 
|  | * Add 'pending' as alias for 'open'. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=2545[Issue 2545]: | 
|  | Support `topic:""` to find changes with no topic. | 
|  |  | 
|  | * Search more fields in the default search query. | 
|  | + | 
|  | If a search is given with only a text, search over a variety of fields | 
|  | rather than just the project name. | 
|  |  | 
|  |  | 
|  | === ssh | 
|  |  | 
|  |  | 
|  | * Expose SSHD backend in | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/cmd-show-connections.html[ | 
|  | `show connections`] SSH command. | 
|  |  | 
|  | * Add support for JCE (Java Cryptography Extension) ciphers. | 
|  |  | 
|  | === REST API | 
|  |  | 
|  |  | 
|  | ==== General | 
|  |  | 
|  |  | 
|  | * Remove `kind` attribute from REST containers. | 
|  |  | 
|  | * Support `AcceptsPost` on non top-level REST collections. | 
|  |  | 
|  | * Accept `HEAD` in RestApiServlet. | 
|  |  | 
|  | ==== Accounts | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-accounts.html#get-user-preferences[ | 
|  | Get user preferences]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-accounts.html#set-user-preferences[ | 
|  | Set user preferences]. | 
|  |  | 
|  | ==== Changes | 
|  |  | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2338[Issue 2338]: | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#create-change[ | 
|  | Create change]. | 
|  |  | 
|  | * Add `other-branches` option on | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#get-mergeable[ | 
|  | Get mergeable] endpoint. | 
|  | + | 
|  | If the `other-branches` option is specified, the mergeability will also be | 
|  | checked for all other branches. | 
|  |  | 
|  | ==== Config | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#list-tasks[ | 
|  | List tasks]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#get-task[ | 
|  | Get task]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#delete-task[ | 
|  | Delete task]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#list-caches[ | 
|  | List caches]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#flush-cache[ | 
|  | Flush cache]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#flush-several-caches[ | 
|  | Flush several caches]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#flush-all-caches[ | 
|  | Flush all caches]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-config.html#get-summary[ | 
|  | Get server summary]. | 
|  |  | 
|  | ==== Projects | 
|  |  | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-projects.html#ban-commit[ | 
|  | Ban commits]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-projects.html#get-content[ | 
|  | Get the content of a file from a certain commit]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2604[Issue 2604]: | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-projects.html#get-commit[ | 
|  | Get an arbitrary commit from a project]. | 
|  |  | 
|  | * link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-projects.html#get-reflog[ | 
|  | Get the reflog of a branch]. | 
|  |  | 
|  | * Add option 'S' to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-projects.html#list-projects[ | 
|  | list projects endpoint] to support query offset. | 
|  |  | 
|  |  | 
|  | === Daemon | 
|  |  | 
|  |  | 
|  | * Add change subject to output of change URL on push. | 
|  |  | 
|  | * Indicate trivial rebase and commit message update on push. | 
|  |  | 
|  | * Add support for | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/user-upload.html#review_labels[ | 
|  | adding review labels on changes] during git push. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2634[Issue 2634]: | 
|  | Add change kind to PatchSetCreatedEvent. | 
|  |  | 
|  |  | 
|  | === Configuration | 
|  |  | 
|  | * Use | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-gerrit.html#core.useRecursiveMerge[ | 
|  | recursive merge] by default. | 
|  |  | 
|  | * Allow to configure the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-gerrit.html#download.archive[ | 
|  | available download archive formats]. | 
|  |  | 
|  | * Add support for | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/database-setup.html#createdb_maxdb[ | 
|  | SAP MaxDB]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2041[Issue 2041]: | 
|  | Allow | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-labels.html#label_defaultValue[ | 
|  | configuration of a default value for a label]. | 
|  |  | 
|  | * Allow projects to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-project-config.html#mimetype-section[ | 
|  | configure MIME types for files]. | 
|  |  | 
|  | * Allow to configure | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-gerrit.html#gc[ | 
|  | periodic garbage collection of all projects]. | 
|  |  | 
|  | * Remove `auth.allowGoogleAccountUpgrade` setting. | 
|  | + | 
|  | It's been more than 5 years since Gerrit ran on Google AppEngine.  It is assumed | 
|  | that everyone has upgraded their installations to a modern 2.x based server, and | 
|  | will not need to have this upgrade path enabled. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2618[Issue 2618]: | 
|  | Remove `label.Label-Name.abbreviation` setting. | 
|  | + | 
|  | The setting was no longer used, so it has been removed. | 
|  |  | 
|  | * New `httpd.registerMBeans` setting. | 
|  | + | 
|  | The | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-gerrit.html#httpd.registerMBeans[ | 
|  | `httpd.registerMBeans` setting] allows to enable (or disable) registration of | 
|  | Jetty MBeans for Java JMX. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2600[Issue 2600]: | 
|  | Add documentation of how to | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/install-j2ee.html#tomcat[ | 
|  | configure Tomcat] to allow embedded slashes. | 
|  |  | 
|  |  | 
|  | === Misc | 
|  |  | 
|  | * Don't allow empty user name and passwords in InternalAuthBackend. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2596[Issue 2596]: | 
|  | Add change-owner parameter to gerrit hooks. | 
|  |  | 
|  |  | 
|  | === Plugins | 
|  |  | 
|  | * Support for externally loaded plugins. | 
|  | + | 
|  | Plugins can be implemented in Scala or Groovy using the | 
|  | link:https://gerrit-review.googlesource.com/\#/admin/projects/plugins/scripting/groovy-provider[ | 
|  | Groovy provider] and | 
|  | link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/scripting/scala-provider[ | 
|  | Scala provider] plugins. | 
|  |  | 
|  | * Allow plugins to replace the WebSession implementation. | 
|  | + | 
|  | Plugins can replace the existing implementation with the statement: | 
|  | `DynamicItem.bind(binder(), WebSession.class).to(...);` | 
|  | in a module designated as a `<Gerrit-HttpModule>` in the manifest. | 
|  | + | 
|  | Just the Cache implementation used for web sessions can be changed | 
|  | by binding to a subclass of the now abstract `CacheBasedWebSession` | 
|  | which supplies the Cache in the superclass constructor. | 
|  | + | 
|  | This is a step towards solving web session issues with multi-master. | 
|  | + | 
|  | The link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/websession-flatfile[ | 
|  | websession-flatfile plugin] replaces the built-in Gerrit WebSession implementation | 
|  | with one that uses a flat file based cache. | 
|  |  | 
|  | * Allow http and ssh plugins to replace the Gerrit-provided DynamicItem. | 
|  |  | 
|  | * New extension point to listen to usage data published events. | 
|  | + | 
|  | Plugins implementing the `UsageDataPublishedListener` can listen to | 
|  | events published about usage data. | 
|  |  | 
|  | * New extension point to link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/dev-plugins.html#pre-upload-hook[ | 
|  | register JGit PreUploadHook]. | 
|  | + | 
|  | Plugins may register PreUploadHook instances in order to get | 
|  | notified when JGit is about to upload a pack. This may be useful | 
|  | for those plugins which would like to monitor usage in Git | 
|  | repositories. | 
|  |  | 
|  | * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/config-validation.html#pre-upload-validation[ | 
|  | pre-upload validation extension point]. | 
|  | + | 
|  | Plugins implementing the `UploadValidationListener` interface can | 
|  | perform additional validation checks before any upload operations | 
|  | (clone, fetch, pull). The validation is executed right before Gerrit | 
|  | begins to send a pack back to the git client. | 
|  |  | 
|  | * New link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/dev-plugins.html#links-to-external-tools[ | 
|  | external tool links extension points]. | 
|  | + | 
|  | Plugins can now contribute project links that will be displayed on the project | 
|  | list screen in the 'Repository Browser' column, and revision links that will be | 
|  | shown on the change screen. | 
|  |  | 
|  | * Allow creation of persistent caches after server is started. | 
|  | + | 
|  | This enables plugins to create own persistent caches when they are | 
|  | installed. | 
|  |  | 
|  | * Make gerrit's HttpServletRequest and HttpServletResponse visible to http | 
|  | plugins. | 
|  |  | 
|  | * New extensions in the Java Plugin API: | 
|  |  | 
|  | ** Query changes | 
|  | ** Create/get/list projects | 
|  | ** Get/set review status | 
|  | ** Create change | 
|  | ** Get account | 
|  | ** Star/unstar changes | 
|  | ** Check if revision needs rebase | 
|  |  | 
|  | == Bug Fixes | 
|  |  | 
|  | === General | 
|  |  | 
|  | * Use fixed rate instead of fixed delay for log file compression. | 
|  | + | 
|  | Log file compression was scheduled using a fixed delay. This caused the start | 
|  | times to drift over time. Use a fixed rate instead so that the compression | 
|  | reoccurs at the same time every day. | 
|  |  | 
|  | * Don't email project watchers on new draft changes. | 
|  | + | 
|  | If a draft change is created by pushing to `refs/drafts/master`, only the reviewers | 
|  | explicitly named on the command line (which may be empty) should be notified of | 
|  | the change. Users watching the project should not be notified, as the change has | 
|  | not yet been published. | 
|  |  | 
|  | * Fix resource exhaustion due to unclosed LDAP connection. | 
|  | + | 
|  | When `auth.type` is set to `LDAP` (not `LDAP_BIND`), two LDAP connections are | 
|  | made, but one was not being closed. This eventually caused resource exhaustion | 
|  | and LDAP authentications failed. | 
|  |  | 
|  | === Access Permissions | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2995[Issue 2995]: | 
|  | Fix faulty behaviour in `BLOCK` permission. | 
|  | + | 
|  | `BLOCK` can be overruled with `ALLOW` on the same project, however there was a | 
|  | bug when a child of the above project duplicates the `ALLOW` permission. In this | 
|  | case the `BLOCK` would always win for the child, even though the `BLOCK` was | 
|  | overruled in the parent. | 
|  |  | 
|  | === Web UI | 
|  |  | 
|  | ==== General | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2595[Issue 2595]: | 
|  | Make gitweb redirect to login. | 
|  | + | 
|  | Gitweb redirects to the login page if the user isn't currently logged. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2631[Issue 2631]: | 
|  | Re-arrange info at footer of Gerrit web UI pages. | 
|  | + | 
|  | Move the Gerrit info link so that there are no links close to the next page link. | 
|  |  | 
|  | * Only create All-Projects ACL once. | 
|  | + | 
|  | If `refs/meta/config` already existed it was overwritten with default configuration | 
|  | if a site administrator ran `java -war gerrit.war init -d /some/existing/site --batch`. | 
|  |  | 
|  |  | 
|  | ==== Change Screen | 
|  |  | 
|  | * Don't linkify trailing dot or comma in messages. | 
|  | + | 
|  | As linkifying trailing dots and trailing commas does more harm than | 
|  | good, we only treat dots and commas as being part of urls, if they are | 
|  | neither followed by whitespace nor occur at the end of a string. | 
|  |  | 
|  | * Re-enable the 'Cherry Pick' button after canceling the dialog. | 
|  | + | 
|  | If the dialog was canceled, the button remained disabled and could not be | 
|  | used again. | 
|  |  | 
|  | * Improve message when removing a reviewer. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=527[Issue 527]: | 
|  | Preserve line breaks in inline and review comments. | 
|  |  | 
|  | * Always show 'No Score' as label help for zero votings. | 
|  |  | 
|  | * Only reset the edited commit message text on cancel. | 
|  |  | 
|  | * Only include message on quick approve if reply is open. | 
|  |  | 
|  | * List reviewers with dummy approvals on closed changes. | 
|  |  | 
|  | * link:http://code.google.com/p/gerrit/issues/detail?id=2890[Issue 2890]: | 
|  | Enable scrollbars for "Edit Commit Message" TextArea. | 
|  |  | 
|  | * Use current time instead of submitter time for cherry-picked commits. | 
|  | + | 
|  | Cherry picking with the submitter time could cause massive clock skew | 
|  | in the Git commit graph if the server was shutdown before the submit could | 
|  | finish, and restarted hours later. | 
|  |  | 
|  | * Fix exception when clicking on a binary file without being signed in. | 
|  |  | 
|  |  | 
|  | ==== Side-By-Side Diff | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2970[Issue 2970]: | 
|  | Fix misalignment of side A and side B for long insertion/deletion blocks. | 
|  |  | 
|  | * Give B side full width when A side is hidden. | 
|  |  | 
|  | * Fix scroll alignment when showing hidden A side. | 
|  |  | 
|  | * Bind Shift-N to search-prev in vim mode. | 
|  |  | 
|  | * Allow text selection in diff header. | 
|  |  | 
|  | * Display diff header on mode changes and renames. | 
|  |  | 
|  | * Document Shift-{Left,Right} in `?` help popup. | 
|  |  | 
|  | * Show `[` and `]` shortcut keys in nav arrow tooltips. | 
|  |  | 
|  | * Disable "Render = Slow" mode on files over 4000 lines. | 
|  |  | 
|  | * Keep keyboard bindings alive after click in padding. | 
|  |  | 
|  | * Jump to the first change on either side. | 
|  |  | 
|  | * Expand margin between paragraphs in comments. | 
|  |  | 
|  | * Include content on identical files with mode change. | 
|  |  | 
|  |  | 
|  | ==== User Settings | 
|  |  | 
|  | * Avoid loading all SSH keys when adding a new one. | 
|  |  | 
|  |  | 
|  | === Secondary Index / Search | 
|  |  | 
|  |  | 
|  | * Omit corrupt changes from search results. | 
|  |  | 
|  | * Allow illegal label names from default search predicate. | 
|  |  | 
|  | === REST | 
|  |  | 
|  | ==== General | 
|  |  | 
|  | * Fix REST API responses for 3xx and 4xx classes. | 
|  |  | 
|  | ==== Changes | 
|  |  | 
|  | * Fix inconsistent behaviour in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#add-reviewer[ | 
|  | add reviewer endpoint] | 
|  | + | 
|  | When adding a single reviewer to a change, it was possible to use the endpoint | 
|  | to add a user who had no visibility to the change or whose account was invalid. | 
|  |  | 
|  |  | 
|  | ==== Changes | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2583[Issue 2583]: | 
|  | Reject inline comments on files that do not exist in the patch set. | 
|  |  | 
|  | * Allow forcing mergeability check on | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#get-mergeable[ | 
|  | Get mergeable]. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2622[Issue 2622]: | 
|  | Respect patch set visibility for messages. | 
|  | + | 
|  | Messages retrieval didn't check for patch set visbility and thus messages for | 
|  | draft patch sets were returned back to the client. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2782[Issue 2782]: | 
|  | Add missing documentation of the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#get-related-changes[ | 
|  | Get Related Changes] endpoint. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2723[Issue 2723]: | 
|  | Clarify the response info in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#get-change-detail[ | 
|  | Get Change Detail] endpoint. | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2693[Issue 2693]: | 
|  | Clarify the response info in the | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/rest-api-changes.html#list-comments[ | 
|  | List Comments] endpoint. | 
|  |  | 
|  | === SSH | 
|  |  | 
|  |  | 
|  | * Prevent double authentication for the same public key. | 
|  | + | 
|  | This is a workaround for link:https://issues.apache.org/jira/browse/SSHD-300[ | 
|  | SSHD-300]. | 
|  |  | 
|  | * Let `kill` SSH command only kill tasks that are visible to the caller. | 
|  |  | 
|  | * Require 'Administrate Server' capability to see server summary output from | 
|  | link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.10/cmd-show-caches.html[ | 
|  | `show-caches`] command. | 
|  |  | 
|  | * Include all command arguments in SSH log entry. | 
|  | + | 
|  | The SSH log only included the first argument. This prevented the repository name | 
|  | from being logged when `git receive-pack` was executed instead of `git-receive-pack`. | 
|  |  | 
|  |  | 
|  | === Daemon | 
|  |  | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2284[Issue 2284]: | 
|  | More detailed error message when failing to upload new change. | 
|  | + | 
|  | When the uploaded change cannot be created on the underlying Git repository, a | 
|  | more descriptive error message is displayed on both client and server side. This | 
|  | allows to troubleshoot internal errors (e.g. JGit lock failures or other causes) | 
|  | and help out in the resolution. | 
|  |  | 
|  | * Enforce HTTP password checking on gitBasicAuth. | 
|  |  | 
|  | * Fix missing commit messages on submodule direct pushes. | 
|  | + | 
|  | The commit message in superproject was missing on submodule's | 
|  | directly pushed changes. | 
|  |  | 
|  |  | 
|  | === Plugins | 
|  |  | 
|  | ==== General | 
|  |  | 
|  |  | 
|  | * link:https://code.google.com/p/gerrit/issues/detail?id=2895[Issue 2895]: | 
|  | Fix reload of plugins that use DynamicItem. | 
|  |  | 
|  | * Invoke `StartPluginListener` and `ReloadPluginListener` only after start/reload | 
|  | is fully done. | 
|  |  | 
|  | * Set `Last-Modified` on cached Documentation resources. | 
|  |  | 
|  | * Return HTTP 304 for not modified SmallResources. | 
|  |  | 
|  | * Fix ChangeListener auto-registered implementations. | 
|  |  | 
|  | ==== Replication | 
|  |  | 
|  |  | 
|  | * Move replication logs into a separate file. | 
|  |  | 
|  | * Promote replication scheduled logs to info. | 
|  |  | 
|  | * Show replication ID in the log and in show-queue command. | 
|  |  | 
|  |  | 
|  | == Upgrades | 
|  |  | 
|  |  | 
|  | * Update Guava to 17.0 | 
|  |  | 
|  | * Update Guice to 4.0-beta5 | 
|  |  | 
|  | * Update GWT to 2.6.1 | 
|  |  | 
|  | * Update httpclient to 4.3.4 | 
|  |  | 
|  | * Update httpcore to 4.3.2 | 
|  |  | 
|  | * Update Jcraft SSH to 0.1.51 | 
|  |  | 
|  | * Update Jetty to 9.2 | 
|  |  | 
|  | * Update JGit to 3.6.2.201501210735-r | 
|  |  | 
|  | * Update log4j to 1.2.17 | 
|  |  | 
|  | * Update Servlet API to 8.0.5 | 
|  |  | 
|  | * Update slf4j to 1.7.7 | 
|  |  | 
|  | * Update Velocity to 1.7 | 
|  |  |