
Change-Id: Ib01785b259c0e94af493b68d3fe85058ae1be589 Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
987 lines
37 KiB
Plaintext
987 lines
37 KiB
Plaintext
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.
|
|
|
|
New Features
|
|
------------
|
|
|
|
Web UI
|
|
~~~~~~
|
|
|
|
Global
|
|
^^^^^^
|
|
|
|
* 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 now not anymore sticked to the Gerrit page
|
|
top border so that it is now always displayed, even if the user has
|
|
scrolled down the page and the top border is not visible.
|
|
+
|
|
This change make 'Working ...' message relatively positioned to
|
|
browser top border, so that it is always visible for users.
|
|
|
|
* 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].
|
|
|
|
* 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.
|
|
|
|
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.
|
|
|
|
* 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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Git
|
|
~~~
|
|
* The wildcard `.` is now permitted in reference regex rules.
|
|
* Checking if a change is mergeable no longer writes to the repository.
|
|
* Improved `git ls-remote` and `git fetch` performance by caching
|
|
changes, decreasing database queries and traffic.
|
|
* 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.
|
|
|
|
* 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.
|
|
|
|
* Added a server-level option to use JGit's new, experimental recursive
|
|
merger.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
User Documentation
|
|
~~~~~~~~~~~~~~~~~~
|
|
|
|
* Added documentation of how to authenticate uploads over HTTP.
|
|
* Added documentation of the `auth.editFullNameUrl` and `auth.httpPasswordUrl` configuration parameters.
|
|
* 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 "commit already exists" error message.
|
|
* Added documentation of contributor agreements.
|
|
* Added missing documentation of JSON attributes.
|
|
* Added missing documentation of mail templates.
|
|
* Added missing documentation of the ssh `version` command.
|
|
* link:https://code.google.com/p/gerrit/issues/detail?id=1602[Issue 1602]:
|
|
Corrected references to `refs/changes` in the access control documentation.
|
|
|
|
* Various minor grammatical and formatting corrections.
|
|
* Manual pages can be optionally created/installed for core gerrit ssh commands.
|
|
|
|
Developer And Maintainer Documentation
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
* Updated the Maven plugin installation instructions for Eclipse 3.7 (Indigo).
|
|
* Improved the release documentation.
|
|
* The release notes are now made when a release is created by running the `tools/release.sh` script.
|
|
|