summaryrefslogtreecommitdiffstats
path: root/ReleaseNotes
diff options
context:
space:
mode:
Diffstat (limited to 'ReleaseNotes')
-rw-r--r--ReleaseNotes/ReleaseNotes-2.0.21.txt2
-rw-r--r--ReleaseNotes/ReleaseNotes-2.0.24.txt2
-rw-r--r--ReleaseNotes/ReleaseNotes-2.5.1.txt5
-rw-r--r--ReleaseNotes/ReleaseNotes-2.5.2.txt2
-rw-r--r--ReleaseNotes/ReleaseNotes-2.5.txt10
-rw-r--r--ReleaseNotes/ReleaseNotes-2.6.txt1702
-rw-r--r--ReleaseNotes/index.txt5
7 files changed, 1718 insertions, 10 deletions
diff --git a/ReleaseNotes/ReleaseNotes-2.0.21.txt b/ReleaseNotes/ReleaseNotes-2.0.21.txt
index 7dd9ef42d3..47ba6542f9 100644
--- a/ReleaseNotes/ReleaseNotes-2.0.21.txt
+++ b/ReleaseNotes/ReleaseNotes-2.0.21.txt
@@ -201,7 +201,7 @@ not appear under the original change notification thread.
Gerrit no longer forges the From header in notification emails.
To enable the prior forging behavior, set `sendemail.from`
to `USER` in gerrit.config. For more details see
-[http://gerrit.googlecode.com/svn/documentation/2.0/config-gerrit.html#sendemail.from sendemail.from]
+link:http://gerrit.googlecode.com/svn/documentation/2.0/config-gerrit.html#sendemail.from[sendemail.from]
Bug Fixes
---------
diff --git a/ReleaseNotes/ReleaseNotes-2.0.24.txt b/ReleaseNotes/ReleaseNotes-2.0.24.txt
index 9481a3a319..7e0a617b74 100644
--- a/ReleaseNotes/ReleaseNotes-2.0.24.txt
+++ b/ReleaseNotes/ReleaseNotes-2.0.24.txt
@@ -67,7 +67,7 @@ requests back to the developers.
* issue 300 Support SMTP over SSL/TLS
+
Encrypted SMTP is now supported natively within Gerrit, see
-[http://gerrit.googlecode.com/svn/documentation/2.0/config-gerrit.html#sendemail.smtpEncryption sendemail.smtpEncryption]
+link:http://gerrit.googlecode.com/svn/documentation/2.0/config-gerrit.html#sendemail.smtpEncryption[sendemail.smtpEncryption]
Bug Fixes
---------
diff --git a/ReleaseNotes/ReleaseNotes-2.5.1.txt b/ReleaseNotes/ReleaseNotes-2.5.1.txt
index ba4e204b27..6fc0dc57de 100644
--- a/ReleaseNotes/ReleaseNotes-2.5.1.txt
+++ b/ReleaseNotes/ReleaseNotes-2.5.1.txt
@@ -38,9 +38,10 @@ the parent project can only be pushed/submitted by Gerrit
administrators.
+
In addition it is now no longer possible to
-- set a non-existing project as parent (as this would make the project
++
+** set a non-existing project as parent (as this would make the project
be orphaned)
-- set a parent project for the `All-Projects` root project (the root
+** set a parent project for the `All-Projects` root project (the root
project by definition has no parent)
by pushing changes of the `project.config` file to `refs/meta/config`.
diff --git a/ReleaseNotes/ReleaseNotes-2.5.2.txt b/ReleaseNotes/ReleaseNotes-2.5.2.txt
index ceb23c280b..08b4f86f02 100644
--- a/ReleaseNotes/ReleaseNotes-2.5.2.txt
+++ b/ReleaseNotes/ReleaseNotes-2.5.2.txt
@@ -7,7 +7,7 @@ link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-full-2.5.2.war
There are no schema changes from 2.5, or 2.5.1.
-However, if upgrading from a version older than 2.5, follow the upgrade
+However, if upgrading from any earlier version, follow the upgrade
procedure in the 2.5 link:ReleaseNotes-2.5.html[Release Notes].
Bug Fixes
diff --git a/ReleaseNotes/ReleaseNotes-2.5.txt b/ReleaseNotes/ReleaseNotes-2.5.txt
index 55fbb60d6e..023b4bf096 100644
--- a/ReleaseNotes/ReleaseNotes-2.5.txt
+++ b/ReleaseNotes/ReleaseNotes-2.5.txt
@@ -270,11 +270,11 @@ ad-hoc scripting use cases.
* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html[Documentation of the REST API]
* Support REST endpoints to
-** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#changes[query changes]
-** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#projects[list projects]
-** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#suggest-projects[suggest
+** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api-changes.html[query changes]
+** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api-projects.html[list projects]
+** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api-projects.html#suggest-projects[suggest
projects]
-** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#accounts_self_capabilities[query
+** link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api-accounts.html#list-account-capabilities[query
the global capabilities of the calling user]
* Support link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#authentication[anonymous
@@ -1376,7 +1376,7 @@ read every other reference in the repository.
* Avoid second remote call to lookup approvals when loading change
results
+
-By using the new link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api.html#changes[`/changes/`]
+By using the new link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.5/rest-api-changes.html[`/changes/`]
REST endpoint the web UI client now obtains the label information
during the query and avoids a second round trip to lookup the current
approvals for each displayed change. For most users this should improve
diff --git a/ReleaseNotes/ReleaseNotes-2.6.txt b/ReleaseNotes/ReleaseNotes-2.6.txt
new file mode 100644
index 0000000000..85f2844d3c
--- /dev/null
+++ b/ReleaseNotes/ReleaseNotes-2.6.txt
@@ -0,0 +1,1702 @@
+Release notes for Gerrit 2.6
+============================
+
+Gerrit 2.6 is now available:
+
+link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.6.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.6.war]
+
+Gerrit 2.6 includes the bug fixes done with
+link:ReleaseNotes-2.5.1.html[Gerrit 2.5.1] and
+link:ReleaseNotes-2.5.2.html[Gerrit 2.5.2]. These bug fixes are *not*
+listed in these release notes.
+
+Schema Change
+-------------
+*WARNING:* This release contains schema changes. To upgrade:
+----
+ java -jar gerrit.war init -d site_path
+----
+
+*WARNING:* Upgrading to 2.6.x requires the server be first upgraded to 2.1.7 (or
+a later 2.1.x version), and then to 2.6.x. If you are upgrading from 2.2.x.x or
+newer, you may ignore this warning and upgrade directly to 2.6.x.
+
+Release Highlights
+------------------
+* 42x improvement on `git clone` and `git fetch`
++
+Running link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
+gerrit gc] allows JGit to optimize a repository to serve clone and fetch
+faster than C Git can, with massively lower server CPU required. Typically
+Gerrit 2.6 can completely transfer a project to a client faster than C Git
+can finish "Counting" the objects.
+
+* Completely customizable workflow
++
+Individual projects can add (or remove) score categories through
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-labels.html[
+labels] and link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html[
+Prolog rules].
+
+New Features
+------------
+
+Web UI
+~~~~~~
+
+Global
+^^^^^^
+
+* New Login Screens
++
+New form based HTML screens for login allow browsers to offer the
+choice to save the login data locally in the user's password store.
+
+* Rename "Groups" top-level menu to "People"
+
+* Move "Draft Comments" link next to "Drafts" link
+
+* Highlight the active menu item
+
+* Move user info, settings, and logout to popup dialog
+
+* Show a small version of the avatar image next to the user's name.
+
+* Show avatar image in user info popup dialog
+
+* Always show 'Working ...' message
++
+The 'Working ...' message is relatively positioned from the top of
+the browser, so that the message is always visible, even if the user
+has scrolled down the page.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#suggest.from[
+ suggest.from] configures a minimum number of characters before
+ matches for reviewers, accounts, groups or projects are offered.
+
+* Make the default font size "small".
+
+* Mark all CSS classes as external so users can rely on them.
+
+Search
+^^^^^^
+* Animate search bar by expanding & unexpanding
++
+When the search bar is used, expand it to allow for more text to be
+visible. When it is blurred, shrink it back to the original size.
+
+* Suggest projects, groups and users in search panel
++
+Suggest projects, groups and users in the search panel as parameter for
+those search operators that expect a project, group or user.
+
+* In search panel suggest 'self' as value for operators that expect a user
+
+* Quote values suggested for search operators only if needed
++
+The values that are suggested for the search operators in the search
+panel are now only quoted if they contain a whitespace.
+
+Change Screens
+^^^^^^^^^^^^^^
+
+* A change's commit message can be edited from the change screen.
+
+* A change's topic can be added, removed or changed from the
+ change screen.
+
+* An "Add Comment" button is added to change screen
+
+* The reviewer matrix on a change displays gray boxes where permissions
+ do not allow voting in that category.
++
+The coloring enables authors to quickly identify if another reviewer
+is necessary to continue the change.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=353[Issue 353] &
+ link:https://code.google.com/p/gerrit/issues/detail?id=1123[Issue 1123]:
+ New link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/project-setup.html#rebase_if_necessary[
+ Rebase If Necessary] submit type
++
+This is similar to cherry pick, but honors change dependency
+information.
+
+* The rebase button is hidden when the patch set is current.
+
+* Improved review message when a change is rebased in the UI
++
+When a change is rebased in the UI by pressing the rebase button, a
+comment is added onto the review. Instead of only saying 'Rebased' the
+message is now more verbose, e.g. 'Patch Set 1 was rebased'.
+
+* The submit type that is used for submitting a change is shown on the
+ change screen in the info block.
++
+This is useful because the submit type of a change can now be
+link:#submit-type-from-prolog[controlled by Prolog].
+
+* Replace the All Diff buttons on the change screen with links
++
+The action buttons to open the diff for all files in own tabs consumed
+too much space due to the long label texts.
+
+* The patch set review screen can include radio buttons for custom
+ labels if enabled by
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html#_how_to_write_submit_rules[submit rules].
+
+* Voting on draft changes is now possible.
+
+* Recommend rebase on Path Conflict
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1685[Issue 1685]:
+ After 'Up to change' expand the patch set that was just reviewed
++
+After clicking on the 'Up to change' link on a patch screen, the patch
+set that was just reviewed is automatically expanded on the change
+screen.
+
+* Allow direct change URLs to end with '/'.
+
+* Slightly increase commit message text size from 8px to 9px.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1381[Issue 1381]:
+ Remove the ID column from change tables
++
+Users don't really need the ID column present. For most changes the
+subject is descriptive and unique enough to identify the correct
+change.
+
+* Do not wrap project/branch/owner fields in change table
++
+This makes it easier to use Gerrit on narrow screens.
+
+Patch Screens
+^^^^^^^^^^^^^
+
+* Support for file comments
++
+It is now possible to comment on a whole file in a patch.
+
+* Have the reviewed panel also at the bottom of the patch screen
++
+Reviewers normally review patches top down, finishing the review when
+they reach the bottom of the patch. To use the streamlined review
+workflow they now don't need to scroll back to the top to find the
+reviewed checkbox and link.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1494[Issue 1494]:
+ Use mono-font for displaying the file contents
++
+This avoids alignment errors when syntax highlighting is enabled.
+
+Project Screens
+^^^^^^^^^^^^^^^
+
+* Support filtering of projects in the project list screen
++
+Filter matches are highlighted by bold printing.
++
+The filter is reflected by the `filter` URL parameter.
+
+* Support filtering of projects in ProjectListPopup
++
+Filter matches are highlighted by bold printing.
+
+* Display a query icon for each project in the project list screen that
+ links to the default query/dashboard of that project.
+
+* Replace projects side menus with top menus
++
+The top menus are submenus to the Project Menu and they appear only
+when a project has been selected.
+
+* Remember the last Project Screen used
++
+Remember the last project screen used every time a project screen is
+loaded. Go to the remembered screen when selecting a new project from
+the project list instead of always going to the project info screen.
+
+* Remember the last project viewed
++
+Remember the last project viewed when navigating away from a project
+screen. If there is a remembered project, then the extra project links
+are not hidden.
+
+* Add clone panel to the project general screen
+
+* New screen for listing and accessing the project dashboards.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1677[Issue 1677]:
+ Place the 'Browse' button to select a watched project next to input field
+
+* Ask user to login if project is not found
++
+Accessing a project URL was failing with 'Not Found - The page you
+requested was not found, or you do not have permission to view this
+page' if the user was not signed in and the project was not visible to
+'Anonymous Users'. Instead Gerrit now asks the user to login and
+afterwards shows the project to the user if it exists and is visible.
+If the project doesn't exist or is not visible, the user will still get
+the Not Found screen after sign in.
+
+* Improve error handling on branch creation
++
+Improve the error messages that are displayed in the WebUI if the
+creation of a branch fails due to invalid user input.
+
+Group Screens
+^^^^^^^^^^^^^
+
+* Support filtering of groups in the group list screen
++
+Filter matches are highlighted by bold printing.
++
+The filter is reflected by the `filter` URL parameter.
+
+* Remove group type from group info screen
++
+The information about the group type was not much helpful. All groups
+that can be seen in Gerrit are of type 'INTERNAL', except a few
+well-known system groups which are of type 'SYSTEM'. The system groups
+are so well-known that there is no need to display the type for them.
+
+Dashboard Screens
+^^^^^^^^^^^^^^^^^
+
+* Link dashboard title to a URL version of itself
++
+When using a stable project dashboard URL, the URL obfuscates the
+content of the dashboard which can make it hard to debug a dashboard or
+copy and modify it. In the special case of stable dashboards, make the
+title a link to an unstable URL version of the dashboard with the URL
+reflecting the actual dashboard contents the way a custom dashboard
+does.
+
+* Increase time span for "Recently Closed" section in user dashboard to 4 weeks.
+
+Account Screens
+^^^^^^^^^^^^^^^
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1740[Issue 1740]:
+ Display description how to generate SSH Key in SshPanel
++
+Display a description of how to generate an SSH Key in an expandable
+section in the SshPanel instead of linking to the GitHub SSH tutorial.
+The GitHub SSH tutorial was partially not relevant and confused users.
+
+* Make the text for "Register" customizable
+
+Plugin Screens
+^^^^^^^^^^^^^^
+
+* Show status for enabled plugins in the WebUI as 'Enabled'
++
+Earlier no status was shown for enabled plugins, which was confusing to
+some users.
+
+REST API
+~~~~~~~~
+
+* A big chunk of the Gerrit functionality is now available via the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[REST API].
++
+The REST API is *NOT* complete yet and some functionality is still missing.
++
+To find out which functionality is available, check the REST endpoint documentation for
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html[projects],
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-changes.html[changes],
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-groups.html[groups] and
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-accounts.html[accounts].
+
+* Support setting `HEAD` of a project
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html#set-head[via REST].
+
+* Audit support for REST API.
++
+Allow generating Audit events related to REST API execution. The
+structure of the AuditEvent has been extended to support the new
+name-multivalue pairs used in the REST API.
++
+This is breaking compatibility with the 2.5 API as it changes the
+params data type, this is needed anyway as the previous list of
+Objects was not providing all the necessary information of
+"what relates to what" in terms of parameters info.
++
+Existing support for SSH and JSON-RPC events have been adapted in
+order to fit into the new name-multivalue syntax: this allow a
+generic audit plug-in to capture all parameters regardless of where
+they have been generated.
+
+* Remove support for deprecated `--format` option when listing changes
++
+Querying changes via REST is now always producing JSON output.
+
+* Introduce `id` property on REST entities
++
+The `/changes/` entities now use `id` to include a triplet of the
+project, branch and change-id string to uniquely identify that change
+on the server. This moves the old `id` field to be named `change_id`,
+which is a breaking change.
+
+* Accept common forms of malformed JSON
++
+Some clients may send JSON-ish instead of JSON. Be nice to those
+clients and accept various useful forms of incorrect syntax:
++
+** End of line comments starting with `//` or `#` and ending with a
+ newline character.
+** C-style comments starting with `/*` and ending with `*/`
+ Such comments may not be nested.
+** Names that are unquoted or single quoted.
+** Strings that are unquoted or single quoted.
+** Array elements separated by `;` instead of `,`.
+** Unnecessary array separators. These are interpreted as if null was
+ the omitted value.
+** Names and values separated by `=` or `=>` instead of `:`.
+** Name/value pairs separated by `;` instead of `,`.
+
+* Be more liberal about parsing JSON responses
++
+If the response begins with the JSON magic string, remove it before
+parsing. If a response is missing this leading string, parse the
+response as-is.
+
+* Accept simple form encoded data for REST APIs
++
+Simple cases like `/review` or `/abandon` can now accept standard form
+values for basic properties, making it simple for tools to directly
+post data:
++
+----
+ curl -n --digest \
+ --data 'message=Does not compile.' \
+ --data labels.Verified=-1 \
+ http://localhost:8080/a/changes/3/revisions/1/review
+----
++
+Form field names are JSON field names in the top level object. If dot
+appears in the name the part to the left is taken as the JSON field
+name and the part to the right as the key for a Map. This nicely fits
+with the labels structure used by `/review`, but doesn't support the
+much more complex inline comment case. Clients that need to use more
+complex fields must use JSON formatting for the request body.
+
+* Allow administrators to see other user capabilities
++
+Expand `/accounts/{id}/capabilities` to permit an administrator
+to inspect another user's effective capabilities.
+
+* Declare kind in JSON API results
++
+This is recommended to hint to clients what the entity type is when
+processing the JSON payload.
+
+* Format h/help output as plain text not JSON
++
+The output produced when the client requested the h or help property
+from a JSON API is always produced from constant compiled into the
+server. Assume this safe to return to the client as text/plain content
+and avoid wrapping it into an HTML escaped JSON string.
+
+* Use string for JSON encoded plain text replies
++
+Instead of wrapping the value into an object, just return the
+string by itself. This better matches what happens with the plain
+text return format.
+
+* Wrap possible HTML plain text in JSON on GET
++
+If the HTML appears like MSIE might guess it is HTML (such as if it
+contains `<`) encode the response as a JSON object instead of as a
+simple plain text string. This won't show up very often for clients,
+and protects MSIE users stuck on ancient versions (pre MSIE 8).
+
+* Ask MSIE to never sniff content types on REST API responses
++
+Newer versions of MSIE can disable the content sniffing feature if the
+server asks it to by setting an extension header. It is annoying, but
+necessary, that a server needs to say "No really, I _am_ telling you
+the right Content-Type, trust it."
++
+This feature was added in MSIE 8 Beta 2 so it doesn't protect users
+running MSIE 6 or 7, but those are ancient and users should upgrade.
++
+Enable this on the REST API responses because we sometimes send back
+text/plain results that are really just plain text. Existing JSON
+responses are protected from accidential sniffing and treatment as
+HTML thanks to Gson encoding HTML control characters using Unicode
+character escapes within JSON strings.
+
+* Apache reverse proxies must switch to mod_rewrite
++
+When Apache is used as a reverse proxy the server must be reconfigured
+to use mod_rewrite and AllowEncodedSlashes. For updated information
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-reverseproxy.html#_apache_2_configuration[
+review the Apache 2 Configuration documentation].
+
+Project Dashboards
+~~~~~~~~~~~~~~~~~~
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html#project-dashboards[
+ Support for storing custom dashboards for projects]
++
+Custom dashboards can now be stored in the projects
+`refs/meta/dashboards/*` branches.
++
+The project dashboards are shown in a new project screen and can be
+link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-projects.html#dashboard-endpoints[
+accessed via REST].
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html#project-default-dashboard[
+ Allow defining a default dashboard for projects]
+
+* Support inheritance for project dashboards.
++
+In dashboards queries the `${project}` token can be used as placeholder
+for the project name. This token will be replaced with the project to
+which a dashboard is being applied.
+
+* On the project list screen a query icon is displayed for each project
+ that links to the default dashboard of that project.
+
+* Support a `foreach` parameter for custom dashboards.
++
+The `foreach` parameter which will get appended to all the queries in
+the dashboard.
+
+Access Controls
+~~~~~~~~~~~~~~~
+* Allow to overrule `BLOCK` permissions on the same project
++
+It was impossible to block a permission for a group and allow the same
+permission for a sub-group of that group as the `BLOCK` permission
+always won over any `ALLOW` permission. For example, it was impossible
+to block the "Forge Committer" permission for all users and then allow
+it only for a couple of privileged users.
++
+An `ALLOW` permission has now priority over a `BLOCK` permission when
+they are defined in the same access section of a project. To achieve the
+above mentioned policy the following could be defined:
++
+ [access "refs/heads/*"]
+ forgeCommitter = block group Anonymous Users
+ forgeCommitter = group Privileged Users
++
+Across projects the `BLOCK` permission still wins over any `ALLOW`
+permission. This way one cannot override an inherited `BLOCK`
+permission in a subproject.
++
+Overruling of `BLOCK` permissions with `ALLOW` permissions also works
+for labels i.e. permission ranges. If a dedicated 'Verifiers' group
+need to be the only group who can vote in the 'Verified' label and it
+must be ensured that even project owners cannot change this policy,
+then the following can be defined in a common parent project:
++
+ [access "refs/heads/*"]
+ label-Verified = block -1..+1 group Anonymous Users
+ label-Verified = -1..+1 group Verifiers
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1516[issue 1516]:
+ Show global capabilities to all users that can read `refs/meta/config`
++
+Users can now propose changes to the global capabilities for review
+from the WebUI.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_remove_reviewer[
+ Remove Reviewer] is a new permission.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_push_signed[
+ Pushing a signed tag] is a new permission.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_edit_topic_name[
+ Editing the topic name] is a new permission.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#capability_accessDatabase[
+ Raw database access] with the `gsql` command is a new global capability.
++
+Previously site administrators had this capability by default. Now it has
+to be explicitly assigned, even for site administrators.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1585[Issue 1585]:
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_view_drafts[
+ Viewing other users' draft changes] is a new permission.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1675[Issue 1675]:
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_delete_drafts[Deleting] and
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#category_publish_drafts[publishing]
+ other users' draft changes is a new permission.
+
+* Grant most permissions when creating `All-Projects`
++
+Make Gerrit more like a Git server out-of-the box by granting both
+Administrators and Project Owners permissions to review changes, submit
+them, create branches, create tags, and push directly to branches.
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#ldap.groupName[
+ LDAP group names] are configurable, `cn` is still the default.
+
+* Kerberos authentication to LDAP servers is now supported.
+
+* Basic project properties are now inherited by default from parent
+ projects: Use Content Merge, Require Contributor Agreement, Require
+ Change Id, Require Signed Off By.
+
+* Allow assigning `Push` for `refs/meta/config` on `All-Projects`
++
+The `refs/meta/config` branch of the `All-Projects` project should only
+be modified by Gerrit administrators because being able to do
+modifications on this branch means that the user could assign himself
+administrator permissions.
++
+In addition to being administrator Gerrit requires that the
+administrator has the `Push` access right for `refs/meta/config` in
+order to be able to modify it (just as with all other branches
+administrators do not have edit permissions by default).
++
+The problem was that assigning the `Push` access right for
+`refs/meta/config` on the `All-Projects` project was not allowed.
++
+Having the `Push` access right for `refs/meta/config` on the
+`All-Projects` project without being administrator has no effect.
+
+Hooks
+~~~~~
+* Change topic is passed to hooks as `--topic NAME`.
+* link:https://code.google.com/p/gerrit/issues/detail?id=1200[Issue 1200]:
+New `reviewer-added` hook and stream event when a reviewer is added.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1237[Issue 1237]:
+New `merge-failed` hook and stream event when a change cannot be submitted due to failed merge.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=925[Issue 925]:
+New `ref-update` hook run before a push is accepted by Gerrit.
+
+* Add `--is-draft` parameter to `comment-added` hook
+
+Git
+~~~
+* Add options to `refs/for/` magic branch syntax
++
+Git doesn't want to modify the network protocol to support passing
+data from the git push client to the server. Work around this by
+embedding option data into a new style of reference specification:
++
+----
+ refs/for/master%r=alice,cc=bob,cc=charlie,topic=options
+----
++
+is now parsed by the server as:
++
+--
+** set topic to "options"
+** CC charlie and bob
+** add reviewer alice
+** for branch refs/heads/master
+--
++
+If `%` is used the extra information after the branch name is
+parsed as options with args4j. Each option is delimited by `,`.
++
+Selecting publish vs. draft should be done with the options `draft` or
+`publish`, appearing anywhere in the refspec after the `%` marker:
++
+----
+ refs/for/master%draft
+ refs/for/master%draft,r=alice
+ refs/for/master%r=alice,draft
+ refs/for/master%r=alice,publish
+----
+
+* Enable content merge by default
++
+Most teams seem to expect Gerrit to manage simple merges within a
+source code file. Enable this out-of-the-box.
+
+* Added a link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#core.useRecursiveMerge[
+ server-level option] to use JGit's new, experimental recursive merger.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1608[Issue 1608]:
+Commits pushed without a Change-Id now warn with instructions on how
+to download and install the commit-msg hook.
+
+* Add `oldObjectId` and `newObjectId` to the `GitReferenceUpdatedListener.Update`
+
+SSH
+~~~
+* New SSH command to http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
+ run Git garbage collection]
++
+All GC runs are logged in a GC log file.
+
+* Descriptions are added to ssh commands.
++
+If `gerrit` is called without arguments, it will now show a list of available
+commands with their descriptions.
+
+* `create-account --http-password` enables setting/resetting the
+ HTTP password of role accounts, for Git or REST API access.
+
+* http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-ls-user-refs.html[
+ ls-user-refs] lists which refs are visible for a given user.
+
+* `ls-projects --has-acl-for` lists projects that mention a group
+ in an ACL, identifying where rights are granted.
+
+* `review` command supports project-specific labels
+
+* `test-submit-rule` was renamed to `test-submit rule`:
++
+`rule` is now a subcommand of the `test-submit` command.
+
+* http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-test-submit-type.html[
+ test-submit type] tests the Prolog submit type with a chosen change.
+
+Query
+~~~~~
+* Allow `{}` to be used for quoting in query expressions
++
+This makes it a little easier to query for group names that contain
+a space over SSH:
++
+ ssh srv gerrit query " 'status:open NOT reviewerin:{Developer Group}' "
+
+* The query summary block includes `resumeSortKey`.
+
+* Query results include author and change size information when certain
+ options are specified.
+
+* When a file is renamed the old file name is included in the Patch
+ attribute
+
+Plugins
+~~~~~~~
+* Plugins can contribute Prolog facts/predicates from Java.
+* Plugins can prompt for parameters during `init` with `InitStep`.
+* Plugins can now contribute JavaScript to the web UI. UI plugins can
+ also be written and compiled with GWT.
+* New Maven archetypes for JavaScript and GWT plugins.
+* Plugins can contribute validation steps to received commits.
+* Commit message length checks are moved to the `commit-message-length-validator`
+ plugin which is included as a core plugin in the Gerrit distribution and
+ can be installed during site initialization.
+* Creation of code review notes is moved to the `reviewnotes` plugin
+ which is included as a core plugin in the Gerrit distribution and can
+ be installed during site initialization.
+* A plugin extension point for avatar images was added.
+* Allow HTTP plugins to change `static` or `docs` prefixes
++
+An HTTP plugin may want more control over its URL space, but still
+delegate to the plugin servlet's magic handling for static files and
+documentation. Add JAR attributes to configure these prefixes.
+
+Prolog
+~~~~~~
+[[submit-type-from-prolog]]
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html#HowToWriteSubmitType[
+ Support controlling the submit type for changes from Prolog]
++
+Similarly like the `submit_rule` there is now a `submit_type` predicate
+which returns the allowed submit type for a change. When the
+`submit_type` predicate is not provided in the `rules.pl` then the
+project default submit type is used for all changes of that project.
++
+Filtering the results of the `submit_type` is also supported in the
+same way like filtering the results of the `submit_rule`. Using a
+`submit_type_filter` predicate one can enforce a particular submit type
+from a parent project.
+
+* Plugins can contribute Prolog facts/predicates from Java.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=288[Issue 288]:
+ Expose basic commit statistics for the Prolog rule engine
++
+A new method `gerrit:commit_stats(-Files,-Insertions, -Deletions)` was
+added.
+
+* A new `max_with_block` predicate was added for more convenient usage
+
+Email
+~~~~~
+* Notify project watchers if draft change is published
+* Notify users mentioned in commit footer on draft publish
+* Add new notify type that allows watching of new patch sets
+* link:https://code.google.com/p/gerrit/issues/detail?id=1686[Issue 1686]:
+ Add new notify type that allows watching abandoning of changes
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-notify.html[
+ Notifications configured in `project.config`] can now be addressed
+ using any of To, CC, or BCC headers.
+* link:https://code.google.com/p/gerrit/issues/detail?id=1531[Issue 1531]:
+Email footers now include `Gerrit-HasComments: {Yes|No}`.
+* `#if($email.hasInlineComments())` can be used in templates to test
+ if there are comments to be included in this email.
+* Notification emails are sent to included groups.
+* Comment notification emails are sent to project watchers.
+* "Change Merged" emails include the diff output when `sendemail.includeDiff` is enabled.
+* When link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api-changes.html#set-review[
+ posting a review via REST] the caller can control email delivery
++
+This may help automated systems to be less noisy. Tools can now choose
+which review updates should send email, and which categories of users
+on a change should get that email.
+
+Labels
+~~~~~~
+* Approval categories stored in the database have been replaced with labels
+ configured in `project.config`. Existing categories are migrated to
+ `project.config` in `All-Projects` as part of the schema upgrade; no user
+ action is required.
+* Labels are no longer global;
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-labels.html[
+ projects may define their own labels], with inheritance.
+* Don't create `Verify` category by default
++
+Most project teams seem confused with the out-of-the-box experience
+needing to vote on both `Code-Review` and `Verified` categories in
+order to submit a change. Simplify the out-of-the-box workflow to only
+have `Code-Review`. When a team installs the Hudson/Jenkins integration
+or their own build system they can now trivially add the `Verified`
+category by pasting 5 lines into `project.config`.
+
+Dev
+~~~
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-readme.html#debug-javascript[
+ Support loading debug JavaScript]
+
+* Gerrit acceptance tests
++
+An infrastructure for testing the Gerrit daemon via REST and/or SSH
+protocols has been added. Gerrit daemon is run in the headless mode and
+in the same JVM where the tests run. Besides using REST/SSH, the tests
+can also access Gerrit server internals to prepare the test environment
+and to perform assertions.
++
+A new review site is created for each test and the Gerrit daemon is
+started on that site. When the test has finished the Gerrit daemon is
+shutdown.
+
+* Lightweight LDAP server for debugging
+
+* Add asciidoc checks in the documentation makefile
++
+Exit with error if the asciidoc executable is not available or has
+version lower than 8.6.3.
++
+The release script is aborted if asciidoc is missing.
+
+* Added sublime project files to `.gitignore`
+
+* Exclude all `pom.xml` files that are archetype resources in `version.sh`
+
+Performance
+~~~~~~~~~~~
+* Bitmap Optimizations
++
+On running the http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-gc.html[
+garbage collection] JGit creates bitmap data that is saved to an
+auxiliary file. The bitmap optimizations improve the clone and fetch
+performance. git-core will ignore the bitmap data.
+
+* Improve suggest user performance when adding a reviewer.
++
+Do not check the visibility of the change for each suggested account if
+the ref is visible by all registered users.
++
+On a system with about 2-3000 users, where most of the projects are
+visible by every registered user, this improves the performance of the
+suggesting reviewer by a factor of 1000 at least.
+
+* Cache RefControl.isVisible()
++
+For Git repositories with many changes the time for calculating visible
+refs is reduced by 30-50%.
+
+* Allow admins to disable magic ref check on upload
++
+Some sites manage to run their repositories in a way that prevents
+users from ever being able to create `refs/for`, `refs/drafts` or
+`refs/publish` names in a repository. Allow admins on those servers
+to disable this (somewhat) expensive check before every upload.
+
+* Permit ProjectCacheClock to be completely disabled
++
+Some admins may just want to require all updates to projects to be
+made through the web interface, and avoid the small expense of a
+background thread ticking off changes.
+
+* Batch read Change objects during query
+
+* Default `core.streamFileThreshold` to a larger value
++
+If this value is not configured by the server administrator
+performance on larger text files suffers considerably and
+Gerrit may grind to a halt and be unable to answer users.
++
+Default to either 25% of the available JVM heap or ~2048m.
+
+* Improve performance of ReceiveCommits for repositories with many refs
++
+Avoid adding `refs/changes/` and `refs/tags/` to RevWalk's as
+uninteresting since JGit RevWalk doesn't perform well when a large
+number of objects is marked as uninteresting.
+
+* PatchSet.isRef()-optimizations.
++
+PatchSet.isRef() is used extensively when preparing for a ref
+advertisment and the regular expression used by isRefs() was notably
+costly in these circumstances, especially since it could not be
+pre-compiled.
++
+The regular expression is removed and the check is now directly
+implemented. As result the performance of `git ls-remote` could be
+increased upto 15%.
+
+* New config option `receive.checkReferencedObjectsAreReachable`
++
+If set to true, Gerrit will validate that all referenced objects that
+are not included in the received pack are reachable by the user.
++
+Carrying out this check on Git repositories with many refs and commits
+can be a very CPU-heavy operation. For non public Gerrit servers it may
+make sense to disable this check, which is now possible.
+
+* Cache config value in LdapAuthBackend
+
+* Perform a single /accounts/self/capabilities on page load
++
+This joins up 3 requests into a single call, which should speed up
+initial page load for most users.
+
+* Only gzip compress responses that are smaller compressed
+
+* Caching of changes
++
+During Ref Advertisments (via VisibleRefFilter), all changes need to
+be fetched from the database to allow Gerrit to figure out which change
+refs are visible and should be advertised to the user. To reduce
+database traffic a cache for changes was introduced. This cache is
+disabled by default since it can mess-up multi-server setups.
+
+Misc
+~~~~
+* Add config parameter to make new groups by default visible to all
++
+Add a new http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#groups.newGroupsVisibleToAll[
+Gerrit configuration parameter] that controls whether newly
+created groups should be by default visible to all registered users.
+
+* Support for OpenID domain filtering
++
+Added the ability to only allow email addresses under specific domains
+to be used for OpenID login.
++
+The allowed domains can be configured by setting
+http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.openIdDomain[
+auth.openIdDomain] in the Gerrit configuration.
+
+* Always configure
+ http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#gerrit.canonicalWebUrl[
+ gerrit.canonicalWebUrl] on init
++
+Gerrit has been requiring this field for several versions now, but init
+did not configure it. Ensure there is a value set so the server is not
+confused at runtime.
+
+* Add submodule subscriptions fetching by projects
++
+While submodule subscriptions can be fetched by branch, some plugins
+(e.g.: delete-project) would rather need to access all submodule
+subscriptions of a project (regardless of the branch). Instead of
+iterating over all branches of a project, and fetching the
+subscription for each branch separately, we allow fetching of
+subscriptions directly by projects.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1805[Issue 1805]:
+ Make client SSL certificates that contain an email address work
++
+Authentication with CLIENT_SSL_CERT_LDAP didn't work if the certificate
+contained email address.
+
+* Guess LDAP type of Active Directory LDS as ActiveDirectory
++
+If Gerrit connects to an AD LDS [1] server it will guess its type as
+RCF_2307 instead of ActiveDirectory. The reason is that an AD LDS
+doesn't support the "1.2.840.113556.1.4.800" capability. However,
+AD LDS behaves like ActiveDirectory and Gerrit also needs to guess
+its type as ActiveDirectory to make the default query patterns work
+properly.
++
+Extend the LDAP server type guessing by checking for presence of the
+"1.2.840.113556.1.4.1851" capability which indicates that this LDAP
+server runs ActiveDirectory as AD LDS [2].
++
+Also remove the check for the presence of the "defaultNamingContext"
+attribute as we don't use it anywhere and, by default, this attribute is
+not set on an AD LDS [3]
++
+[1] http://msdn.microsoft.com/en-us/library/aa705886(VS.85).aspx +
+[2] http://msdn.microsoft.com/en-us/library/cc223364.aspx +
+[3] http://technet.microsoft.com/en-us/library/cc816929(v=ws.10).aspx
+
+* Allow group descriptions to supply email and URL
++
+Some backends have external management interfaces that are not
+embedded into Gerrit Code Review. Allow those backends to supply
+a URL to the web management interface for a group, so a user can
+manage their membership, view current members, or do whatever other
+features the group system might support.
++
+Some backends also have an email address associated with every
+group. Sending email to that address will distribute the message to
+the group's members. Permit backends to supply an optional email
+address, and use this in the project level notification system if
+a group is selected as the target for a message.
+
+* Allow group backends to guess on relevant UUIDs
++
+Expose all cheaply known group UUIDs from the ProjectCache,
+enumerating groups used by access controls. This allows a backend
+that has a large number of groups to filter its getKnownGroups()
+output to only groups that may be relevant for this Gerrit server.
++
+The best use case to consider is an LDAP server at a large
+organization. A typical user may belong to 50 LDAP groups, but only
+3 are relevant to this Gerrit server. Taking the intersection of
+the two groups limits the output Gerrit displays to users, or uses
+when considering same group visibility.
+
+* Add more forbidden characters for project names
++
+`?`, `%`, `*`, `:`, `<`, `>`, `|`, `$`, `\r` are now forbidden in
+project names.
+
+* Make `gerrit.sh` LSB compliant
++
+** Add LSB headers
+** Add 'status' as synonym for 'check'
+** Fix exit status codes according to http://refspecs.linux-foundation.org/LSB_3.2.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html
+
+* Option to start headless Gerrit daemon
++
+Add `--headless` option to the Daemon which will start Gerrit daemon
+without the Web UI front end (headless mode).
++
+This may be useful for running Gerrit server with an alternative (rest
+based) UI or when starting Gerrit server for the purpose of automated
+REST/SSH based testing.
++
+Currently this option is only supported via the `--headless` option of
+the daemon program. We would need to introduce a config option in order
+to support this feature for deployed war mode.
+
+* Show path to gerrit.war in command for upgrade schema
+
+Upgrades
+~~~~~~~~
+* link:https://code.google.com/p/gerrit/issues/detail?id=1619[Issue 1619]:
+Embedded Jetty is now 8.1.7.v20120910.
+
+* ASM bytecode library is now 4.0.
+* JGit is now 2.3.1.201302201838-r.78-g8fcde4b.
+* asciidoc 8.6.3 is now required to build the documentation.
+* link:https://code.google.com/p/gerrit/issues/detail?id=1155[Issue 1155]:
+prettify is now r225
+
+* The used GWT version is now 2.5.0
++
+Fixes some issues with IE9 and IE10.
+
+Bug Fixes
+---------
+
+Web UI
+~~~~~~
+* link:https://code.google.com/p/gerrit/issues/detail?id=1662[Issue 1662]:
+ Don't show error on ACL modification if empty permissions are added
++
+This error message was incorrectly displayed if a permission without
+rules was added, although the save was actually successful.
+
+* Don't show error on ACL modification if a section is added more than once
++
+This error message was incorrectly displayed if multiple sections for
+the same ref were added, although the save was actually successful.
+
+* Links to CGit were broken when `remove-suffix` was enabled.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=926[Issue 926]:
+Internet Explorer versions 9 and 10 are supported.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1664[Issue 1664]:
+ Reverting a change did not preserve the change's topic
+
+* Fix: User could get around restrictions by reverting a commit
++
+The Gerrit server may enforce several restrictions on the commit
+message (change-id required, signed-off-by, etc). A user was able to
+get around these restrictions by reverting a commit using the UI.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1518[Issue 1518]:
+ Reset 'Old Version History' if dependent change is opened
++
+Following the navigation link in the dependencies table on the
+change screen, the user can directly navigate to dependent changes.
+The value for 'Old Version History' of the current change was
+incorrectly applied to the new change. If the value was invalid for
+the new change the 'Old Version History' field became blank.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1736[Issue 1736]:
+ Clear 'Old Version History' ListBox before populating it
++
+The ListBox was not always cleared and as result the same entries were
+sometimes added multiple times e.g. after rebasing a change in the
+WebUI.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1673[Issue 1673]:
+ Fix disappearance of patch headers when compared patches are identical
++
+When two patches were compared that were identical 'No Differences' is
+displayed to the user. In this case the patch headers disappeared and
+as result the user couldn't change the patch selection anymore.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1759[Issue 1759]:
+ Fix ArrayIndexOutOfBoundsException on intraline diff
++
+In some cases displaying the intraline diff failed with an exception like
+this:
++
+----
+java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 10
+ at com.google.gerrit.prettify.common.SparseFileContent.mapIndexToLine(SparseFileContent.java:149)
+ at com.google.gerrit.prettify.common.PrettyFormatter.format(PrettyFormatter.java:188)
+ at com.google.gerrit.client.patches.AbstractPatchContentTable.getSparseHtmlFileB(AbstractPatchContentTable.java:287)
+ at com.google.gerrit.client.patches.SideBySideTable.render(SideBySideTable.java:113)
+ at com.google.gerrit.client.patches.AbstractPatchContentTable.display(AbstractPatchContentTable.java:238)
+ at com.google.gerrit.client.patches.PatchScreen.onResult(PatchScreen.java:444)
+...
+----
++
+This happened when the old line was:
++
+----
+ foo-old<LF>
+----
++
+and the new line was:
++
+----
+ foo-new<CRLF>
+----
+
+* Prevent leading and trailing spaces on user's Full Name
++
+Strip off the leading and trailing spaces from the Full Name that the
+user enters on the Contact Information form.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]:
+ Show proper error message if registering email address fails
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=816[Issue 816]:
+ Due to issues with the diff_intraline cache the file indention in the
+ Side-By-Side diff was sometimes wrong.
+
+* Make rebase failed and merge failed messages consistent
+
+* Select 'Projects' menu on loading of a project screen
++
+If in the top level menu 'All' is selected and the user navigates to
+a change and then from the change to the project by clicking on the
+project link in the ChangeInfoBlock, the project screen is loaded but
+the 'Projects' menu was not selected.
+
+* Fix display issues for inline comments and inline comment editors
++
+** Sometimes a second comment editor was shown instead of using the
+ existing comment editor.
+** Fix doublicated border line between comments.
+** Sometimes the parts of the border were missing when a comment was
+ expanded.
+** Fix displaying the blue line that marks the current line when there
+ are several published comments.
+** Sometimes on discard of a comment some frames of the comment editor
+ stayed and some border lines of neighbour comments disappeared.
+
+* In diff view don't let arrow column accept clicks.
+
+* Fix display of commit message
++
+If there are no HTML tags in the text, just break on lines.
+
+* Upon selection in AddMemberBox, focus the box's text field
++
+In the change screen, after clicking on an element of the 'Add
+Reviewer' suggestion list, users expect to be able to add the reviewer
+by hitting enter. This did not work in Firefox.
+
+* Fix enter key detection in project creation screen
++
+The enter key detection was not working in all browsers (e.g. Firefox).
+
+* Display a tooltip for all tiny icons and ensure that the cursor is
+ shown as pointer when hovering over them.
+
+* Clean query string when switching pages
++
+If we load a page without a query string, such as Projects->List,
+My->Changes, or Settings, it might be confusing to show the old query
+string from the previous page. The query string is now cleared out
+when switching pages, leaving the help text visible.
+
+* Fix highlighting in search suggestions
++
+The provided suggestions should highlight the part that the user has
+already typed as bold text. This only worked for the first operator.
+For suggestions of any further operator no hightlighting was done.
+
+* Fix style of hint text in search box on initial page load
++
+The hint text should be a light gray on the white background,
+but was coming up black on initial page load due to a style setup
+ordering issue between the SearchPanel and the HintTextBox.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1661[Issue 1661]:
+ Update links to Change-Id and Signed-off-by docu on project info
+ screen
+
+* Use href="javascript;" for All {Side-by-Side,Unified} links
++
+These links shouldn't have an anchor location. There is nothing for
+the browser to remember or visit if it were opened in a new tab for
+example.
+
+* Improve message for unsatisfiable dependencies
++
+If a change cannot be merged due to unsatisfiable dependencies a
+comment is added to the change that lists the missing commits and says
+that a rebase is necessary.
++
+For each missing commit the comment said "Depends on patch set X
+of ..., however the current patch set is Y."
++
+If multiple commits are missing it may be that for some commits the
+dependency is not outdated (X == Y). In this case the message was
+confusing.
++
+", however the current patch set is Y." is now skipped if Y == X.
+
+REST API
+~~~~~~~~
+* Fix returning of 'Email Reviewers' capability via REST
++
+The `/accounts/self/capabilities/` didn't return the 'Email Reviewers'
+capability when it was not explicitly assigned, although by default
+everyone has the 'Email Reviewers' capability.
++
+If 'Email Reviewers' capability was allowed or denied,
+`/accounts/self/capabilities/` returned the 'Email Reviewers'
+capability always as true, which was wrong for the DENY case.
+
+* Provide a more descriptive error message for unauthenticated REST
+ API access
+
+Git
+~~~
+* The wildcard `.` is now permitted in reference regex rules.
+
+* Checking if a change is mergeable no longer writes to the repository.
+
+* Submitted but unmerged changes are periodically retried. This is
+ necessary for a multi-master configuration where the second master
+ may need to retry a change not yet merged by the first. Please note
+ we still do not believe this is sufficient to enable multi-master.
+
+* Retry merge after LOCK_FAILURE when updating branch
++
+If the project requires fast-forwards, the merge cannot succeed once
+a lock failure occurs, but in other cases, it is safe to retry the
+merge immediately.
+
+* Do not automatically add reviewers from footer lines to draft patch sets
++
+Gerrit already avoids adding reviewers from footer lines when a new
+draft change is created. Now the same is done for draft patch sets.
+
+* Add users mentioned in commit footer as reviewers on draft publish
+
+* Hide any existing magic branches during push
++
+If there is a magic branch visible during push, just hide it from the
+client. Administrators can clear these by accessing the repository
+directly.
+
+* Prevent from deleting `refs/changes/`
++
+Everything under `refs/changes/` should be protected by Gerrit, users
+shouldn't be able to delete a particular patch set or a whole change
+from the review process.
+
+* Update description file in Git
++
+When writing the description to `project.config`, it is also necessary
+to write it to the description file in the repository so the same text
+is visible in CGit or GitWeb.
+
+* Write valid reflog for `HEAD` when creating the `All-Projects`
+ project
++
+When the `All-Projects` project is created during the schema
+initialization, `HEAD` is set to point to the `refs/meta/config`
+branch. When `HEAD` is updated an entry into the reflog is written.
+This ref log entry should contain the ID of the initial commit as
+target, but instead the target was the zero ID.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1702[Issue 1702]:
+ Fix: 'internal server error' when pushing the same commit twice
++
+On the second push of the same commit to `refs/for/<branch name>`, Gerrit
+returns 'no new changes'.
++
+However if the user pushed to 'refs/changes/<change id>', Gerrit returned
+'internal server error'.
+
+* Match all git fetch/clone/push commands to the command executor
++
+Route not just `/p/` but any Git access to the same thread pool as the
+SSH server is using, allowing all requests to compete fairly for
+resources.
+
+* Fix auto closing of changes on direct push
++
+When a commit was directly pushed into a repository (bypassing code
+review) and this commit had a Change-Id in its commit message then the
+corresponding change was not automatically closed if it was open.
+
+* Set change state to NEW if merge fails due to non-existing dest branch
++
+If a submitted change failed to merge because the destination branch
+didn't exist anymore, it stayed in state 'Submitted, Merge Pending'.
+This meant Gerrit was re-attempting to merge this change (e.g. on
+startup), but this didn't make sense. Either the branch did still not
+exist (then there was no need to try merging it) or a new branch with
+the old name was created (then it was questionable if the change should
+still be merged into this branch). This is why it's better to set the
+change back to the 'Review in Progress' state and update it with a
+message saying that it couldn't be merged because the destination
+branch doesn't exist anymore.
++
+In addition Gerrit was writing an error into the error log if a change
+couldn't be merged because the destination branch wass missing.
+That was not really a server error and is not logged anymore.
+
+* Fix NPE when pushing a patch with an invalid author with
+ `Forge Author` permissions
+
+* Fix duplicated GitReferenceUpdated event on project creation.
++
+Creating a new Gerrit project was firing the GitReferenceUpdated event
+for the `refs/meta/config` branch two times.
+
+* Fix error log message in ReceiveCommits
++
+When the creation of one or more references failed ReceiveCommits failed
+with 'internal server error' and wrote the following error log:
+"Only X of Y new change refs created in xxx; aborting"
+The printed value for Y could be wrong since it didn't include the
+replaceCount. As a result, a confusing message like
+"Only 0 of 0 new change refs created in xxx; aborting"
+could appear in the error log.
+
+SSH
+~~~
+* `review --restore` allows a review score to be added on the restored change.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1721[Issue 1721]:
+ `review --message` only adds the message once.
+
+* `ls-groups` prints "N/A" if the group's name is not set.
+
+* `set-project-parent --children-of`: Fix getting parent for level 1 projects
++
+For direct child projects of the `All-Projects` project the name of the
+parent project was incorrectly retrieved if the parent name was not
+explicitly stored as `All-Projects` in the project.config file.
+
+* Fix NPE when abandoning change with invalid author
++
+If the author of a change isn't known to Gerrit (pushed with
+`Forge Author` permissions), trying to abandon that change over SSH
+failed with an NPE.
+
+Query
+~~~~~
+* link:https://code.google.com/p/gerrit/issues/detail?id=1729[Issue 1729]:
+ Fix query by 'label:Verified=0'
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1772[Issue 1772]:
+ Set `_more_changes` if result is limited due to configured query limit
+
+* Fix query cost for "status:merged commit:c0ffee"
+
+Plugins
+~~~~~~~
+* Skip disabled plugins on rescan
++
+In a background thread Gerrit periodically scans for new or changed
+plugins. On every such a rescan disabled plugins were loaded and a new
+copy of their jar files was stored in the review site's tmp folder.
+
+* Fix cleanup of plugins from tmp folder on graceful Gerrit shutdown
++
+Loaded plugin jars are copied to the review site's tmp folder to support
+hot updates of the plugin jars in the plugins folder. On Gerrit shutdown
+these copies of the jar files should be cleaned up. For this purpose a
+CleanupHandle is created, but the CleanupHandle wasn't enqueued in the
+cleanupQueue which is why cleanup on Gerrit shutdown didn't happen.
+
+* Reattempt deletion of plugin jars from tmp folder on JVM termination
++
+Loaded plugin jars are copied to the review site's tmp folder to support
+hot updates of the plugin jars in the plugins folder. On Gerrit shutdown
+these copies of the jar files should be cleaned up. For this purpose a
+CleanupHandle is created. The deletion of the tmp file in the
+CleanupHandle can fail although the jar file was closed. In this case
+reattempt the deletion on termination of the virtual machine. This
+normally succeeds.
+
+* Fix unloading of plugins
++
+When two plugins, say pluginA, and pluginB had been loaded, and pluginA
+was removed from $sitePath/plugins, pluginA got stopped, and a cleaning
+run was ordered. But this cleaning run cleaned both plugins and both
+plugins had their jars removed. This left pluginB visible to Gerrit
+although it's backing jar was gone. Upon calling not yet initialized
+parts of pluginB (e.g.: viewing not yet viewed Documentation pages of
+pluginB), exceptions as following were thrown:
++
+----
+ java.lang.IllegalStateException: zip file closed
+ at java.util.zip.ZipFile.ensureOpen(ZipFile.java:420)
+ at java.util.zip.ZipFile.getEntry(ZipFile.java:165)
+----
+
+* Fix double bound exception when loading extensions
++
+ServerInformation class was already bound, therefore it shouldn't be
+bound a second time for Gerrit extensions.
+
+* Do not call onModuleLoad() second time
++
+onModuleLoad() method is automatically called by GWT framework. Calling
+it once again in PluginGenerator caused double plugin initialization.
+
+* Require `Administrate Server` capability to GET /plugins/
++
+Listing plugins requires being an administrator. This was missed in the
+REST API.
+
+Email
+~~~~~
+* Merge failure emails are only sent once per day.
+* Unused macros are removed from the mail templates.
+* Unnecessary ellipses are no longer applied to email subjects.
+* The empty diff output from an "octopus merge" is now explained in change notification emails.
+* link:https://code.google.com/p/gerrit/issues/detail?id=1480[Issue 1480]:
+Proper error message is shown when registering an email address fails.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1692[Issue 1692]:
+Review comments are sorted before being added to notification emails.
+
+* Fix watching of 'All Comments' on `All-Projects`
++
+If a user is watching 'All Comments' on `All-Projects` this should
+apply to all projects.
+
+Misc
+~~~~
+* Provide more descriptive message for NoSuchProjectException
+
+* On internal error due to receive timeout include the value of
+ `receive.timeout` into the log message
+
+* Silence INFO/DEBUG output from apache.http
++
+This spammed the log when using OpenID, for each and every login.
+
+* Remove `mysql_nextval` script
++
+This function does not work on binary logging enabled servers,
+as MySQL is unable to execute the function on slaves without
+causing possible corruption. Drop the function since it was only
+created to help administrators, and is unsafe.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1312[Issue 1312]:
+ Fix relative URL detection in submodules
++
+Relative submodules do not start with `/`. Instead they start with
+`../`. Fix the Submodule Subscriptions engine to recognize relative
+submodules.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1622[Issue 1622]:
+ Fix NPE in LDAP Helper class if username is null
+
+* Fix commit-msg hook failure with spaces in path
++
+If the project absolute path had any whitespace, the commit
+hook failed to complete because a script variable was not
+enclosed in double quotes.
+
+* Drop the trailing ".git" suffix of the name of new project
+
+* Prevent possible NPE when running `change-merged` hook
++
+It's possible that the submitter is null. Add a check for this
+before invoking the `change-merged` hook with it.
+
+* Keep change open if its commit is pushed to another branch.
+
+* Fire GitReferenceUpdated event when BanCommit updates the
+ `refs/meta/reject-commits` branch.
+
+* Fix GitWeb Caching
++
+GitWeb Caching was not working when its cgi file was executed from
+outside. The same approach will also work with vanilla GitWeb.
+
+* Fix infinite loops when walking project hierarchy
+
+* Fix resource leak in MarkdownFormatter
+
+* Query all external groups for internal group memberships
++
+When asking for the known groups a user belongs to they may belong
+to an internal group by way of membership in a non-internal group,
+such as LDAP. Cache in memory the complete list of any non-internal
+group UUIDs used as members of an internal group. These must get
+checked for membership before completing the known group data from
+the internal backend.
+
+* Handle sorting groups with no name to avoid NPE
+
+* `gerrit.sh`
+** Don't suggest site init if schema version is newer than expected
+** Improve error messages in schema check
+** Suggest changing `gerrit.config` when JDK not found
+** Explicitly set a shell
+** Determine `GERRIT_SITE` from current working directory.
+** Fix `gerrit.sh restart` for relative paths
+** Fix site path computation if '.' occurs in path
+** Whitespace fixes
+
+* Display the reason of an Init injection failure.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1821[Issue 1821]:
+ Warn if `cache.web_sessions.maxAge` is to small
++
+Setting `maxAge` to a small value can result in the browser endlessly
+redirecting trying to setup a new valid session. Warn administrators
+that the value is set smaller than 5 minutes.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1821[Issue 1821]:
+ Support `cache.web_sessions.maxAge` < 1 minute
+
+* Use SECONDS as default time unit for `cache.web_sessions.maxAge`
++
+DefaultCacheFactory already uses SECONDS as default time unit for
+`cache.*.maxAge`.
++
+Update the described default time unit for `cache.*.maxAge` in the
+documentation.
++
+Administrators may need to update their configuration to for the new
+default time unit.
+
+* Add pylint configuration for contributed Python scripts
+
+* Various fixes and improvements of the `contrib/trivial_rebase.py`
+ script
++
+** Adapt options to Gerrit 2.6
+** Use change-url flag for ChangeId
+** Prevent exception for empty commit
+** Fix pylint errors
+** Call `gerrit review` instead of `gerrit approve`
+** Make the private key argument optional
+** Support alternative ssh executable, for example `plink`
+** Support custom review labels
+** Correctly handle empty patch ID
++
+If only one of the patch IDs is empty, it should not be considered
+a trivial rebase.
+
+** Use plain python instead of python2.6
++
+Windows installation only has python.exe
+
+* Correct MIME type of `favicon.ico` reference
++
+This is not a GIF, it is an "MS Windows icon resource".
+Some browsers may skip the image if the type is wrong.
+
+* Use `<link rel="shortcut icon">` for `favicon.ico` reference
++
+IE looks for a two-word "shortcut icon" relationship. Other browsers
+interpret this as two relationships, one of which is "icon", so they
+can handle this syntax as well.
++
+See:
++
+** http://msdn.microsoft.com/en-us/library/ms537656(VS.85).aspx
+** http://jeffcode.blogspot.com/2007/12/why-doesnt-favicon-for-my-site-appear.html
+
+* Remove `servlet-api` from `WAR/lib`
++
+It is wrong to include the servlet API in a WAR's `WEB-INF/lib`
+directory. This confuses some servlet containers who refuse to
+load the Gerrit WAR. Instead package the Jetty runtime and the
+servlet API in a new `WEB-INF/pgm-lib` directory.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1822[Issue 1822]:
+ Verify session matches container authentiation header
++
+If the user alters their identity in the container invalidate
+the Gerrit user session and force a new one to begin.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1743[Issue 1743]:
+ Move RPC auth token from `Authorization` header to `X-Gerrit-Auth`
++
+Servers that run with auth.type = HTTP or HTTP_LDAP are unable to
+use the web UI because the Authorization code supplied by the UI
+overrides the browser's native `Authorization` header and causes the
+request to be blocked at the HTTP reverse proxy, before Gerrit even
+sees the request.
++
+Instead insert a unique token into `X-Gerrit-Auth`, leaving the HTTP
+standard `Authorization` header unspecified and available for use in
+HTTP reverse proxies.
+
+Documentation
+-------------
+
+User Documentation
+~~~~~~~~~~~~~~~~~~
+* Split link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[
+ REST API documentation] and have one page per top level resource
+
+* Add executable examples for GET requests to
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/rest-api.html[
+ REST API documentation]
++
+Add examples for GET requests to the REST API documentation on which
+the user can click to fire the requests. This allows users to
+immediately try out the requests and play around with them.
+
+* Document the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/access-control.html#block[
+ BLOCK access rule].
+
+* Added documentation of
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-upload.html#http[
+ how to authenticate uploads over HTTP].
+
+* Added documentation of the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.editFullNameUrl[auth.editFullNameUrl] and
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#auth.httpPasswordUrl[auth.httpPasswordUrl]
+ configuration parameters.
+
+* Add link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/prolog-cookbook.html[
+ submit_rule examples] from Gerrit User Summit 2012.
+
+* Improved the push tag examples in the access control documentation.
+
+* Improved documentation of error messages related to commit message footer content.
+
+* Added documentation of the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/error-commit-already-exists.html[
+ commit already exists] error message.
+
+* Added missing documentation of the ssh
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/cmd-version.html[
+ version] command.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1369[Issue 1369]:
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gitweb.html[
+ Gitweb Instruction Updates]
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1594[Issue 1594]:
+ Document execute permission for commit-msg in
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-changeid.html#creation[
+ Change-Id docs]
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=1602[Issue 1602]:
+Corrected references to `refs/changes` in the access control documentation.
+
+* Update documentation of
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#trackingid.name.match[
+ maximal length for tracking ids]
+
+* Added missing documentation of
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/json.html[JSON attributes].
+
+* Rename `custom-dashboards.html` to
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/user-dashboards.html[user-dashboards.html]
++
+This document no longer deals exclusively with custom dashboards, it now describes project level dashboards also.
+
+* Separate the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-login-register.html[
+ initial user setup instructions] to a shared file
+
+* Separate the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/database-setup.html[
+ database setup instructions] to a shared file
+
+* Improve the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/database-setup.html[
+ instructions for PgSQL setup]
+
+* Fix the order of steps in the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/install-j2ee.html[
+ J2EE Installation document]
++
+It is better to first define the JNDI data source in the application
+server and then deploy Gerrit than opposite. This should avoid errors
+like "No DataSource" on the first deployment.
+
+* Clarify documentation of
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-gerrit.html#ldap.groupName[
+ LDAP group name setting]
+
+* Adapt documentation to having 'Projects' as top level menu
+* Added missing documentation of mail templates.
+* Added documentation of contributor agreements.
+* Fix `init.d` symbolic link commands.
+* Remove obsolete diskbuffer setting from example config file.
+* Various minor grammatical and formatting corrections.
+* Fix external links in 2.0.21 and 2.0.24 release notes
+* Manual pages can be optionally created/installed for core gerrit ssh commands.
+
+Developer And Maintainer Documentation
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+* Updated the link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-eclipse.html#maven[
+ Maven plugin installation instructions] for Eclipse 3.7 (Indigo).
+
+* Document link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html#commit-message[
+ usage of the past tense in commit messages]
+
+* Add link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html[
+ instructions] on how to configure git for pushing to Gerrit's Gerrit
+
+* link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-contributing.html#process[
+ Stable branches process documentation]
+
+* Improved the
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html[
+ release documentation].
+
+* Document that plans for
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html#stable[
+ stable-fix releases] should be announced
+
+* Document process for
+ link:http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/dev-release.html#security[
+ security-fix releases]
+
+* The release notes are now made when a release is created by running the `tools/release.sh` script.
+
diff --git a/ReleaseNotes/index.txt b/ReleaseNotes/index.txt
index 07e6aa5203..98cc3ac51d 100644
--- a/ReleaseNotes/index.txt
+++ b/ReleaseNotes/index.txt
@@ -1,6 +1,11 @@
Gerrit Code Review - Release Notes
==================================
+[[2_6]]
+Version 2.6.x
+-------------
+* link:ReleaseNotes-2.6.html[2.6]
+
[[2_5]]
Version 2.5.x
-------------