| 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 | 
 | ---- | 
 |  | 
 | To export prior review information into `refs/notes/review` branches | 
 | within each Git repository: | 
 | ---- | 
 |   java -jar gerrit.war ExportReviewNotes -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 | 
 | ------------ | 
 |  | 
 | Change Data | 
 | ~~~~~~~~~~~ | 
 | * issue 64 Create Git notes for submitted changes | 
 | + | 
 | Git notes are automatically added to the `refs/notes/review`. | 
 |  | 
 | 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. | 
 |  | 
 | * Add a "revert change"-button to a submitted patchset | 
 | + | 
 | Clicking "Revert Change" creates a new change with the inverse of | 
 | the submitted patch set ready for review and submission. This makes | 
 | it easy to undo a build-breaking change right from the web UI. | 
 |  | 
 | * issue 194 Diff patch sets | 
 | + | 
 | Change pages now offer a selection box, "Old Version History", | 
 | to compare patch sets against one another and view only the files | 
 | that differ between two patch sets. This new feature can speed up | 
 | re-reviewing a change. | 
 |  | 
 | * issue 913 Support different color pallete when not signed in | 
 | + | 
 | Site administrators can configure a different theme in gerrit.config for | 
 | the signed-in and signed-out states, making it more obvious to site users | 
 | they are currently signed-in (or not). | 
 |  | 
 | * Add parent info to each change screen Patch Set | 
 | + | 
 | This mirrors the data shown in the 'Commit Message' file, making | 
 | it easy to identify the parent(s) of the commit without opening | 
 | up the Commit Message or gitweb. | 
 |  | 
 | * Remove the SSH key loading applet | 
 | + | 
 | The Java based SSH key loading applet is no longer included as part of | 
 | the Gerrit Code Review interface. Users need to copy and paste their | 
 | SSH public key files by hand. | 
 |  | 
 |  | 
 | SSH Commands | 
 | ~~~~~~~~~~~~ | 
 | * issue 674 Add abandon/restore to `gerrit review` | 
 | * Add `gerrit version` command | 
 |  | 
 | Change Upload | 
 | ~~~~~~~~~~~~~ | 
 | * Display a more verbose "you are not author/committer" message | 
 |  | 
 | 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' | 
 |  | 
 | 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. | 
 |  | 
 | * Hide non-visible groups from suggestion service | 
 | + | 
 | Groups that are not visible to a user are not shown as suggestions in | 
 | contexts where a group name completion is supported.  The previously | 
 | mentioned 'make group visible to all users' flag can be used on a | 
 | per-group basis to expose groups to everyone. | 
 |  | 
 | * Use suggest.accounts to control user completion suggestions | 
 | + | 
 | The new `suggest.accounts` configuration variable in gerrit.config | 
 | can control how suggestions for users are offered. | 
 |  | 
 | * 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. | 
 |  | 
 | Replication | 
 | ~~~~~~~~~~~ | 
 | * 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://. | 
 |  | 
 | * Support HTTP authentication for replication | 
 | + | 
 | Replication can now be performed over an authenticated smart HTTP | 
 | transport, in addition to anonymous Git and authenticated SSH. | 
 |  | 
 | Misc. | 
 | ~~~~~ | 
 | * 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, | 
 | openid4java to 0.9.6, ANTLR to 3.2, GWT to 2.1.1, JSch to 0.1.44, Gson | 
 | to 1.6, Apache Commons Net to 2.2, Apache Commons Pool to 1.5.5, JGit | 
 | to 0.12.1.53-g5ec4977, MINA SSHD to 0.5.1-r1095809. | 
 |  | 
 | Bug Fixes | 
 | --------- | 
 |  | 
 | Web UI | 
 | ~~~~~~ | 
 | * issue 853 Incorrect side-by-side display of modified lines | 
 | + | 
 | A bug in JGit lead to the side-by-side view displaying wrong and | 
 | confusing output of modified lines. This bug also caused some | 
 | automatic merges to be carried out incorrectly, usually resulting in | 
 | compile failures. Fixed. | 
 |  | 
 | * 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 | 
 | * issue 915 Always display button text in black | 
 | * issue 946 Make sure that ENTER works in all text fields | 
 | * issue 963 Go back to change screen if 'Publish and Submit' fails | 
 | * 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 | 
 |  | 
 | commit-msg Hook | 
 | ~~~~~~~~~~~~~~~ | 
 | * issue 922 Fix commit-msg hook to run on Solaris | 
 |  | 
 | Outgoing Mail | 
 | ~~~~~~~~~~~~~ | 
 | * issue 780 E-mail about failed merge should not use Anonymous Coward | 
 | + | 
 | Some email was sent as Anonymous Coward, even when the user had a | 
 | configured name and email address. Fixed. | 
 |  | 
 | * Fix calculation of project owners | 
 | + | 
 | When sending out new changes for review, Gerrit automatically | 
 | tries to address the project owners on the To line of the outgoing | 
 | message. This sometimes included the owner of a branch. Fixed. | 
 |  | 
 | * Do not email reviewers adding themselves as reviewers | 
 | * 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. | 
 |  | 
 | * issue 635 Match Change-Id by project and branch combination | 
 | * issue 635 Auto close changes by Change-Id on same branch only | 
 | + | 
 | Changes are automatically closed during direct push to branch only if | 
 | the Change-Id line matches and the branch name matches. Previously | 
 | changes were closed automatically if only the Change-Id matched, | 
 | making it difficult to cherry-pick changes across branches. | 
 |  | 
 | * issue 947 Disallow to push to non-connected target | 
 | + | 
 | If a repository stores disconnected history graphs on different | 
 | branches, changes may only be pushed to the correct branch. | 
 |  | 
 | * 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. | 
 |  | 
 | * Make Change-Id requirement applicable only to reviews | 
 | + | 
 | Change-Ids are not required when directly pushing to a branch. This | 
 | permits projects that normally require Change-Ids to still perform | 
 | direct branch pushes for updates received from an upstream project | 
 | that does not use Change-Ids. | 
 |  | 
 | * Reject invalid Change-Id lines | 
 | + | 
 | Severly malformed Change-Id lines were previously accepted by the | 
 | server. These are now rejected. | 
 |  | 
 | * 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. | 
 |  | 
 | * Better help message when commit message is malformed | 
 | + | 
 | If the commit message is badly formatted Gerrit displays an error | 
 | message to the client. This message has been extended to offer | 
 | suggestions on how to correct the commit message. | 
 |  | 
 | * 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 755 Send new patchset event after its available | 
 | * issue 814 Evict initial members of group created by SSH | 
 | * issue 879 Fix replication of initial empty commit in new project | 
 | * Disallow setting a project as parent for itself | 
 | * Autoamtically create user account(s) as necessary | 
 | * Move SSH command creation off NioProcessor threads | 
 |  | 
 | 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. | 
 |  | 
 | * PostgreSQL: conditional installation of PL/pgSQL. | 
 | + | 
 | Conditional installation is needed to install Gerrit on PostgreSQL 9. | 
 |  | 
 | * issue 961 Fix NPE on Gerrit startup if mail.from is invalid | 
 | * issue 966 Enable git:// download URLs if canonicalGitUrl set | 
 | * Stop logging 'keepalive@jcraft.com' errors in error_log | 
 | * gerrit.sh: Fix issues on SuSE Linux | 
 | * gerrit.sh: Fix issues on Solaris | 
 | * gerrit.sh: Support spaces in JAVA_HOME | 
 |  | 
 | 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 |