| = Release notes for Gerrit 2.1.6 |
| |
| Gerrit 2.1.6 is now available: |
| |
| link:https://www.gerritcodereview.com/download/gerrit-2.1.6.war[https://www.gerritcodereview.com/download/gerrit-2.1.6.war] |
| |
| == Schema Change |
| |
| *WARNING* This release contains multiple schema changes. To upgrade: |
| ---- |
| java -jar gerrit.war init -d site_path |
| ---- |
| |
| |
| == New Features |
| |
| === Web UI |
| * issue 312 Abandoned changes can now be restored. |
| * issue 698 Make date and time fields customizable |
| * issue 556 Preference to display patch sets in reverse order |
| * issue 584 Allow deleted and/or uncommented files to be skipped |
| |
| * Use HistogramDiff for content differences |
| + |
| HistogramDiff is an adaptation of Bram Cohen's Patience Difference |
| algorithm, and was recently included in the upstream JGit project. |
| Patience Difference tends to produce more readable differences for |
| source code files, and JGit's HistogramDiff implementation tends to |
| run several times faster than the prior Myers O(ND) algorithm. |
| |
| * Automatic merge file content during submit |
| + |
| Project owners can now enable file-level content merge during submit, |
| allowing Gerrit to automatically resolve many path conflict cases. |
| This is built upon experimental merge code inherited from JGit, |
| and is therefore still experimental in Gerrit. |
| |
| === Change Query |
| * issue 688 Match branch, topic, project, ref by regular expressions |
| + |
| Similar to other features in Gerrit Code Review, starting any of these |
| expressions with \^ will now treat the argument as a regular |
| expression instead of an exact string match. |
| |
| * Search changes by commit messages with `message:` operator. |
| |
| * issue 729 query: Add a \--all-approvals option to queries |
| + |
| The new flag includes approval information for all patch sets in the |
| resulting query output. |
| |
| Notifications |
| ~~~~~~~~~~~~ |
| * Customize email notification templates |
| + |
| Email notifications are now driven by the Velocity template engine, |
| and may be modified by the site administrator by editing a template |
| file under `'$site_path'/etc/mail`. |
| |
| * issue 311 Clarify email texts/subject |
| + |
| The default email notification formatting was changed to make the |
| subject lines and message bodies more consistent, and easier to |
| understand. |
| |
| * issue 204 Add project list popup under Settings > Watched Projects |
| + |
| The project list panel makes it easier for users to browse all |
| projects they have at least READ +1 access to, and add them to their |
| watched project set so notifications can be configured. |
| |
| * stream-event support for all ref-update events |
| + |
| Whenever a ref is updated via either a direct push to a branch or a |
| Gerrit change submission, Gerrit will now send a new "ref-updated" |
| event to the event stream. |
| |
| === User Management |
| * SSO via client SSL certificates |
| + |
| A new auth.type of CLIENT_SSL_CERT_LDAP supports authenticating users |
| using client SSL certificates. This feature requires using the |
| embedded Jetty web server with SSL enabled, and an LDAP directory to |
| lookup individual account information. |
| |
| * issue 503 Inactive accounts may be disabled. |
| + |
| Administrators can manually update the accounts table, setting |
| inactive = `Y` to mark user accounts inactive. Inactive accounts |
| cannot sign-in, cannot be added as a reviewer, and cannot be added |
| to a group. |
| |
| * Improve the no-interactive-shell error message over SSH |
| + |
| Instead of giving a short 'no shell available' error, Gerrit Code |
| Review now prints a banner letting the user know they have |
| authenticated successfully, interactive shells are disabled, and how |
| to clone a hosted project: |
| + |
| ---- |
| $ ssh -p 29418 review.example.com |
| |
| **** Welcome to Gerrit Code Review **** |
| |
| Hi A. U. Thor, you have successfully connected over SSH. |
| |
| Unfortunately, interactive shells are disabled. |
| To clone a hosted Git repository, use: |
| |
| git clone ssh://author@review.example.com:29418/REPOSITORY_NAME.git |
| |
| Connection to review.example.com closed. |
| ---- |
| |
| * Configure SSHD maxAuthTries, loginGraceTime, maxConnectionsPerUser |
| + |
| The internal SSH daemon now supports additional configuration |
| settings to reduce the risk of abuse. |
| |
| === Administration |
| * issue 558 Allow Access rights to be edited by clicking on them. |
| |
| * New 'Project Owner' system group to define default rights |
| + |
| The new system group 'Project Owners' can be used in access |
| rights to mean any user that is a member of any group that |
| has the 'Owner' access category granted within that project. |
| This system group is primarily useful in higher level projects |
| such as '\-- All Projects \--' to define standard access rights |
| for all project owners. |
| |
| * issue 557 Allow rejection of changes without Change-Id line. |
| + |
| Project owners can set a flag to require all commits to include |
| the Gerrit specific 'Change-Id: I...' line during initial upload, |
| reducing the risk of confusion when amends need to occur to |
| incorporate reviewer feedback. |
| |
| * issue 613 create-project: Add --permissions-only option |
| + |
| The new flag skips creating the associated Git repository, making the |
| new project suitable for use as a parent to inherit permissions from. |
| |
| * create-project: Optionally create empty initial commit |
| + |
| The `repo` tool used by Android doesn't like to clone an empty Git |
| repository, making it difficult to setup a review for the initial file |
| contents. create-project can now optionally create an empty initial |
| commit, permitting repo to sync the empty project. |
| |
| * Block off commands on a server for certain user groups. |
| + |
| The upload.allowGroup and receive.allowGroup settings in gerrit.config |
| can be used to restrict which users can perform git clone/fetch or git |
| push on this server. This can be useful if clone/fetch should be |
| limited to only site administrators, while normal users are supposed |
| to use to less expensive mirror servers. |
| |
| * issue 685 Define gerrit.replicateOnStartup to control replication |
| + |
| The automatic replicate every project action that occurs during server |
| startup can now be disabled by setting replicateOnStartup = false. |
| This is primarily useful for sites with extremely large numbers of |
| projects and replication targets, but runs the risk of having a target |
| be out of date relative to the master server. |
| |
| * New non-blocking function category "NoBlock" |
| + |
| Site defined approval categories may now use the function "NoBlock" |
| to permit scoring without blocking submission. This is mostly |
| useful for automated tools to provide optional feedback on a change. |
| |
| * Ability to reject commits from entering repository |
| + |
| The Git-note style branch `refs/meta/reject-commits` can be created |
| by the project owner or site administrator to define a list of |
| commits that must not be pushed into the repository. This can be |
| useful after performing a project-wide filter-branch operation to |
| prevent the older (pre-filter-branch) history from being reintroduced |
| into the repository. |
| |
| == Bug Fixes |
| |
| === Web UI |
| * issue 498 Enable Keyboard navigation after change submit |
| * issue 691 Make ']' on last file go up to change |
| * issue 741 Make ENTER work for 'Create Group' |
| * issue 622 Denote a symbolic link in side-by-side viewer |
| * issue 612 Display empty branch list when project has no repository |
| * issue 672 Fix deleting exclusive branch level rights |
| * issue 645 Display 'No difference' between unchanged patchsets |
| * Display groups as links to group information |
| * Remove ctrl-d keybinding to discard comment, honor browser default |
| * Do not auto enable save buttons, wait for changes to be made |
| * Disable 'Create Group' button if group name not entered |
| * Show commit message in PatchScreen if old patch sets are compared |
| * Fixed a number of focus and shortcut bugs in Firefox, Chrome |
| |
| * issue 487 Work around buggy MyersDiff by killing threads |
| + |
| MyersDiff sometimes locked up in an infinite loop when computing |
| the intraline difference information for a file. These threads |
| are now killed after an administrator specified timeout |
| (cache.diff_intraline.timeout, default is 5 seconds). If the |
| timeout is reached the file content is displayed without intraline |
| differences. This offers reduced functionality to the end-user, but |
| prevents the "path of death" which usually took down a Gerrit server. |
| |
| * Hide access rights not visible to user |
| + |
| Users were able to view access rights for branches they didn't |
| actually have READ +1 permission on. This may have leaked |
| information about branches and/or groups to users that shouldn't |
| know about code names contained within either string. Users that |
| are not project owners may now only view access rights for branches |
| they have at least READ +1 permission on. |
| |
| === Change Query |
| * issue 689 Fix age:4days to parse correctly |
| * Make branch: operator slightly less ambiguous |
| |
| === Push Support |
| * issue 695 Permit changing only the author of a commit |
| + |
| Correcting only the author of a change failed to upload the new patch |
| set onto the existing change, as neither the message nor the files |
| were modified. Fixed. |
| |
| * issue 576 Allow Push Branch +3 to force replace a tag |
| + |
| Previously it was not possible to replace a tag object, even if |
| `git push \--force` was used. Fixed. |
| |
| * issue 690 Refuse to run receive-pack if refs/for/branch exists |
| + |
| If a server repository was corrupted by an administrator manually |
| creating a reference within the magical refs/for/ namespace, Gerrit |
| became confused when changes were uploaded for review. If this case |
| occurs push now aborts very early, with a clear error message |
| indicating the problem. To recover an administrator must clear the |
| refs/for/ namespace manually. |
| |
| * Allow receive-pack without Read +2 but with Push Head +1 |
| + |
| Users who had direct branch push permission but lacked the ability to |
| create changes for review were unable to push to a project. Fixed. |
| This (finally) makes Gerrit a replacement for Gitosis or Gitolite. |
| |
| === Replication |
| * issue 683 Don't assume authGroup = "Registered Users" in replication |
| + |
| Previously a misconfigured authGroup in replication.config may have |
| caused the server to assume "Registered Users" instead of the group(s) |
| admin actually wanted. This may have caused the replication to see |
| (or not see) the correct set of projects. |
| |
| * issue 482 Upon replication fail, automatically retry later |
| + |
| If replication fails (for example due to temporary network |
| connectivity problems), other pending replication events to the |
| same server are deferred and retried later until successful. |
| |
| * Replicate all refs received from push |
| + |
| Replication now replicates all references, not just those that |
| appear under `refs/heads`, `refs/tags`, or `refs/changes`. This |
| fix may be relevant if the server supports user-private sandboxes |
| such as `refs/dev/'$\{username\}'/*`. |
| |
| * issue 658 Allow refspec shortcuts (push = master) for replication |
| |
| === User Management |
| * Ensure proper escaping of LDAP group names |
| + |
| Some special characters may appear in LDAP group names, these must be |
| escape when looking up the group information from JNDI, otherwise the |
| lookup fails. Fixed by applying the necessary escape sequences. |
| |
| * Let login fail if user name cannot be set |
| + |
| If the user name for a new account is supposed to import from LDAP |
| but cannot because it is already in use by another user on this |
| server, the new account won't be created. |
| |
| === Administration |
| * gerrit.sh: actually verify running processes |
| + |
| Previously `gerrit.sh check` claimed a server was running if the |
| pid file was present, even if the process itself was dead. It now |
| checks `ps` for the process before claiming it is running. |
| |
| * Don't allow exclusive branch rights to block Owner inheritance |
| + |
| Exclusive branch level rights prevented the a higher level branch |
| owner from managing the branch rights, unless they had an additional |
| access right for the exclusive rights. Now Owner inheritance cannot |
| be blocked, ensuring that the higher level owner can manage their |
| entire namespace. |
| |
| * Allow overriding permissions from parent project |
| + |
| Permissions in the parent project could not be overridden in the |
| child project. Permissions can now be overidden if the category, |
| group name and reference name all match. |
| |
| == Version |
| ef16a1816f293d00c33de9f90470021e2468a709 |