blob: 58aa5842c0ef9a53e7b0828fd2cafc50c5660b97 [file] [log] [blame]
Release notes for Gerrit 2.1.7
==============================
Gerrit 2.1.7 is now available:
link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.1.7.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.1.7.war]
Schema Change
-------------
*WARNING* This release contains multiple schema changes. To upgrade:
----
java -jar gerrit.war init -d site_path
----
Memory Usage Increase
---------------------
*WARNING* The JGit delta base cache, whose size is controlled by
`core.deltaBaseCacheLimit`, has changed in this release from being a
JVM-wide singleton to per-thread. This alters the memory usage, going
from 10M for the entire JVM to 10M per concurrent operation. The
change improves performance on big repositories, but may need a larger
`container.heapLimit` if the number of concurrent operations is high.
New Features
------------
Query
~~~~~
* Search project names by substring
+
Entering a word with no operator (for example `gerrit`) will be
expanded to all projects whose names contain the string 'gerrit'.
* issue 722 ownerin and reviewerin search predicates
+
New search predicates `ownerin:'GROUP'` and `reviewerin:'GROUP'`
search for changes whose owner or that has a reviewer in (or not
in if prefixed with `-`) the specified group.
Web UI
~~~~~~
* Add reviewer/verifier name beside check/plus/minus
+
Change lists (such as from a search result, or in a user's dashboard)
can now optionally display the name of the reviewer or verifier who
gave the score being shown in the summary column. This is an optional
per-user preference that can be enabled in the Settings screen.
SSH Commands
~~~~~~~~~~~~
* issue 674 Add abandon/restore to `gerrit review`
Outgoing Mail
~~~~~~~~~~~~~
* Optionally add Importance and Expiry-Days headers
+
New gerrit.config variable `sendemail.importance` can be set to `high`
or `low` to classify outgoing mail, and `sendemail.expiryDays` can be
set to suggest clients should automatically expire or expunge messages
this many days after being sent.
* Add support for SMTP AUTH LOGIN
Administration
~~~~~~~~~~~~~~
* Group option to make group visible to all users
+
A new group option permits the group to be visible to all users,
rather than just its members. Some sites may find this useful for
a project owners group, to help users contact the relevant folks.
* Group option to only email change authors on updates
+
A new group option causes all users who are a member of that group to
only send email notifications to change authors, excluding reviewers
and watchers. This can be useful for automated build and testing users
to reduce the amount of email sent to reviewers.
* Permit groups to be members of other groups
+
Groups can now be a member of another group, users are automatically
a member of the transitive closure of their group membership.
* READ +3 permission required to upload merges
+
The new READ +3 permission is required to upload merge commits. Users
with only READ +2 permission may upload new changes, but not merges.
The schema upgrade will automatically convert any current READ +2
access lines to be READ +3 to maintain prior behavior.
* "Show Inherited Rights" checkbox in Project Access
+
This checkbox enables showing or hiding the lines that are inherited
from the parent project. This makes it easier to find the rules that
are unique to the project being viewed.
* Allow single letter usernames
+
Username requirements are relaxed to permit single letter usernames.
* Fine-grained control over authentication cookie
+
Site administrators can now set `auth.cookieSecure` to request
browsers only send the cookie over https:// connections, preventing
eavesdropping.
+
Site administrators can now set `auth.cookiePath` to override the
path used for the authentication cookie, which may be necessary if
a reverse proxy maps requests to the managed gitweb.
Documentation
~~~~~~~~~~~~~
* Detailed error message explanations
+
Most common error messages are now described in detail in the
documentation under 'User Guide', 'Error Messages'. Each error is
explained, along with possible courses of action for an end-user to
resolve the issue.
* issue 905 Document reverse proxy using Nginx
* Updated system scaling data in 'System Design'
Misc.
~~~~~
* Add adminUrl to replication for repository creation
+
Replication remotes can be configured with `remote.name.adminUrl` to
indicate an SSH path for repository creation that is different from
the normal push URL in `remote.name.url`. The adminUrl can be used by
Gerrit to create a new repository when the normal URL is a non-SSH
URL, such as git:// or http://.
* Alternative URL for Gerrit's managed Gitweb
+
The internal gitweb served from `/gitweb` can now appear to be from a
different URL by using a reverse proxy that does URL rewriting.
* Internal dependencies updated
+
Updated H2 Database to 1.2.147, PostgreSQL JDBC Client to 9.0-801,
ANTLR to 3.2, GWT to 2.1.1, JSch to 0.1.44, Gson to 1.6, Ehcache to
2.3.0, Apache Commons Net to 2.2, Apache Commons Pool to 1.5.5, JGit
to 0.11.3.240-gd05d351, MINA SSHD to 0.5.1-r1095809, Jetty to
7.4.0.v20110414.
Bug Fixes
---------
Web UI
~~~~~~
* Disallow negative/zero columns in difference views
+
Previously a negative or zero value in the number of columns field
would break the user's account and prevent them from viewing any file
differences through the web UI. Values less than 1 are now rejected,
and existing broken accounts will work again by resetting to a sane
column count.
* Fix branches table displaying symbolic references (e.g. HEAD).
+
In the project's "Branches" tab symbolic references like HEAD always
displayed the wrong target name. Fixed to display the target name of
the reference.
* Disallow deletion of HEAD and targets of symbolic refs
+
Deleting the target of a symbolic reference causes the symbolic to
become dangling, and it becomes useless.
* Prevent creating 'refs/for/branch' in web UI.
* issue 804 Display proper error message on invalid group
+
Attempting to browse a group that does not exist or that is not
visible to the current user now displays a proper error message,
instead of a scary generic "Application Error, Server Error".
* issue 822 Up To Change link activates last browsed patch set
* issue 846 Disable buttons during RPCs
* Enable "Sign Out" when auth.type = CLIENT_SSL_CERT_LDAP.
* Fix handling of "Session Expired" with SSL certificates.
* Fix compatibility with recent releases of Gitweb.
* Fix "review" link in Gitweb integration.
* Always display button text in black
* Always disable content merge option if user can't change project
Outgoing Mail
~~~~~~~~~~~~~
* Fix comma/space separation in email templates
Pushing Changes
~~~~~~~~~~~~~~~
* Avoid huge pushes during refs/for/BRANCH push
+
With Gerrit 2.1.6, clients started to push possibly hundreds of
megabytes for what should be a tiny patch set changing 1 line of 1
file. This large push was caused by the server advancing ahead of the
client (e.g. due to another change being submitted) and the client not
having fetched the new version. Fixed by adding some recent history to
the advertisement so that clients don't have to upload the entire
project for a small change.
* issue 414 Reject pushing multiple commits with same Change-Id
+
If multiple new commits are uploaded to a refs/for/ branch and
they have the same Change-Id, the push is now rejected. Within
a project, the Change-Id should be unique and users should either
squash the commits, or modify them to use unique Change-Ids.
* Always do Change-Id checks on receiving commits
+
Ensure Change-Ids aren't incorrectly used, even if the project does
not require them to be present. Previously some validity checks were
only performed if the project required Change-Id lines.
* Fix error message returned on push to closed change
+
If a commit with a Change-Id was pushed, and the corresponding change
was already closed, the server incorrectly errored out with "No new
changes". Now it reports the change is closed and does not accept a
new patch set.
* Fix error message for rejecting a change of another project
+
Instead of saying 'change not found' when pushing to a commit to
a refs/changes/NNNN reference that belongs in another project, the
error now indicates the change belongs to another project.
* Log warning on 'change state corrupt' error
+
If a change state corrupt error is reported to a client, there was
no mention if it on the server error log. Now it is reported so the
site administrator also knows about it.
SSH Commands
~~~~~~~~~~~~
* issue 814 Evict initial members of group created by SSH
* issue 879 Fix replication of initial empty commit in new project
Administration
~~~~~~~~~~~~~~
* Enable git reflog for all newly created projects
+
Previously branch updates were not being recorded in the native Git
reflogs ($GIT_DIR/logs/refs/heads) due to a misconfiguration on new
projects created by gerrit create-project. Fixed.
* Fix IllegalArgumentException caused by non-ASCII user names
+
An invalid username is now always reported in UTF-8.
* gerrit.sh: Support spaces in JAVA_HOME
+
Mac OS X may need spaces in the path to the JRE.
* Stop logging 'keepalive@jcraft.com' errors in error_log
Documentation
~~~~~~~~~~~~~
* issue 800 documentation: Show example of review -m
* issue 896 Clarify that ${name} is required for replication.
* Fix spelling mistake in 'Searching Changes' documentation
* Fix spelling mistake in user-upload documentation
* Document cache diff_intraline
* Document change set dependencies and cherry-pick
* Include user in scp commands to copy commit hook
* Adjust documentation to build with current AsciiDoc version
Version
-------
a1b59472d207054ff635636807c943c0b14aae58