| = Release notes for Gerrit 2.1.7 |
| |
| Gerrit 2.1.7 is now available: |
| |
| link:https://www.gerritcodereview.com/download/gerrit-2.1.7.war[https://www.gerritcodereview.com/download/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 palette 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 |
| + |
| Severely 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 |
| * Automatically 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 |