Shawn O. Pearce | 70f35ff | 2010-11-30 17:49:40 -0800 | [diff] [blame] | 1 | Release notes for Gerrit 2.1.6 |
| 2 | ============================== |
| 3 | |
| 4 | Gerrit 2.1.6 is now available: |
| 5 | |
| 6 | link:http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.1.6.war[http://code.google.com/p/gerrit/downloads/detail?name=gerrit-2.1.6.war] |
| 7 | |
| 8 | Schema Change |
| 9 | ------------- |
| 10 | |
| 11 | *WARNING* This release contains multiple schema changes. To upgrade: |
| 12 | ---- |
| 13 | java -jar gerrit.war init -d site_path |
| 14 | ---- |
| 15 | |
| 16 | |
| 17 | New Features |
| 18 | ------------ |
| 19 | |
| 20 | Web UI |
| 21 | ~~~~~~ |
| 22 | * issue 312 Abandoned changes can now be restored. |
| 23 | * issue 698 Make date and time fields customizable |
| 24 | * issue 556 Preference to display patch sets in reverse order |
| 25 | * issue 584 Allow deleted and/or uncommented files to be skipped |
| 26 | |
| 27 | * Use HistogramDiff for content differences |
| 28 | + |
| 29 | HistogramDiff is an adaptation of Bram Cohen's Patience Difference |
| 30 | algorithm, and was recently included in the upstream JGit project. |
| 31 | Patience Difference tends to produce more readable differences for |
| 32 | source code files, and JGit's HistogramDiff implementation tends to |
| 33 | run several times faster than the prior Myers O(ND) algorithm. |
| 34 | |
| 35 | * Automatic merge file content during submit |
| 36 | + |
| 37 | Project owners can now enable file-level content merge during submit, |
| 38 | allowing Gerrit to automatically resolve many path conflict cases. |
| 39 | This is built upon experimental merge code inherited from JGit, |
| 40 | and is therefore still experimental in Gerrit. |
| 41 | |
| 42 | Change Query |
| 43 | ~~~~~~~~~~~~ |
| 44 | * issue 688 Match branch, topic, project, ref by regular expressions |
| 45 | + |
| 46 | Similar to other features in Gerrit Code Review, starting any of these |
| 47 | expressions with \^ will now treat the argument as a regular |
| 48 | expression instead of an exact string match. |
| 49 | |
| 50 | * Search changes by commit messages with `message:` operator. |
| 51 | |
| 52 | * issue 729 query: Add a \--all-approvals option to queries |
| 53 | + |
| 54 | The new flag includes approval information for all patch sets in the |
| 55 | resulting query output. |
| 56 | |
| 57 | Notifications |
Gustaf Lundh | 7020947 | 2014-12-18 16:05:30 +0100 | [diff] [blame] | 58 | ~~~~~~~~~~~~ |
Shawn O. Pearce | 70f35ff | 2010-11-30 17:49:40 -0800 | [diff] [blame] | 59 | * Customize email notification templates |
| 60 | + |
| 61 | Email notifications are now driven by the Velocity template engine, |
| 62 | and may be modified by the site administrator by editing a template |
| 63 | file under `'$site_path'/etc/mail`. |
| 64 | |
| 65 | * issue 311 Clarify email texts/subject |
| 66 | + |
| 67 | The default email notification formatting was changed to make the |
| 68 | subject lines and message bodies more consistent, and easier to |
| 69 | understand. |
| 70 | |
| 71 | * issue 204 Add project list popup under Settings > Watched Projects |
| 72 | + |
| 73 | The project list panel makes it easier for users to browse all |
| 74 | projects they have at least READ +1 access to, and add them to their |
| 75 | watched project set so notifications can be configured. |
| 76 | |
| 77 | * stream-event support for all ref-update events |
| 78 | + |
| 79 | Whenever a ref is updated via either a direct push to a branch or a |
| 80 | Gerrit change submission, Gerrit will now send a new "ref-updated" |
| 81 | event to the event stream. |
| 82 | |
| 83 | User Management |
| 84 | ~~~~~~~~~~~~~~~ |
| 85 | * SSO via client SSL certificates |
| 86 | + |
| 87 | A new auth.type of CLIENT_SSL_CERT_LDAP supports authenticating users |
| 88 | using client SSL certificates. This feature requires using the |
| 89 | embedded Jetty web server with SSL enabled, and an LDAP directory to |
| 90 | lookup individual account information. |
| 91 | |
David Pursehouse | 4d7ac77 | 2013-06-25 17:14:30 +0900 | [diff] [blame] | 92 | * issue 503 Inactive accounts may be disabled. |
Shawn O. Pearce | 70f35ff | 2010-11-30 17:49:40 -0800 | [diff] [blame] | 93 | + |
| 94 | Administrators can manually update the accounts table, setting |
| 95 | inactive = `Y` to mark user accounts inactive. Inactive accounts |
| 96 | cannot sign-in, cannot be added as a reviewer, and cannot be added |
| 97 | to a group. |
| 98 | |
| 99 | * Improve the no-interactive-shell error message over SSH |
| 100 | + |
| 101 | Instead of giving a short 'no shell available' error, Gerrit Code |
| 102 | Review now prints a banner letting the user know they have |
| 103 | authenticated successfully, interactive shells are disabled, and how |
| 104 | to clone a hosted project: |
| 105 | + |
| 106 | ---- |
| 107 | $ ssh -p 29418 review.example.com |
| 108 | |
| 109 | **** Welcome to Gerrit Code Review **** |
| 110 | |
| 111 | Hi A. U. Thor, you have successfully connected over SSH. |
| 112 | |
| 113 | Unfortunately, interactive shells are disabled. |
| 114 | To clone a hosted Git repository, use: |
| 115 | |
| 116 | git clone ssh://author@review.example.com:29418/REPOSITORY_NAME.git |
| 117 | |
| 118 | Connection to review.example.com closed. |
| 119 | ---- |
| 120 | |
| 121 | * Configure SSHD maxAuthTries, loginGraceTime, maxConnectionsPerUser |
| 122 | + |
| 123 | The internal SSH daemon now supports additional configuration |
| 124 | settings to reduce the risk of abuse. |
| 125 | |
| 126 | Administration |
| 127 | ~~~~~~~~~~~~~~ |
| 128 | * issue 558 Allow Access rights to be edited by clicking on them. |
| 129 | |
| 130 | * New 'Project Owner' system group to define default rights |
| 131 | + |
| 132 | The new system group 'Project Owners' can be used in access |
| 133 | rights to mean any user that is a member of any group that |
| 134 | has the 'Owner' access category granted within that project. |
| 135 | This system group is primarily useful in higher level projects |
| 136 | such as '\-- All Projects \--' to define standard access rights |
| 137 | for all project owners. |
| 138 | |
| 139 | * issue 557 Allow rejection of changes without Change-Id line. |
| 140 | + |
| 141 | Project owners can set a flag to require all commits to include |
| 142 | the Gerrit specific 'Change-Id: I...' line during initial upload, |
| 143 | reducing the risk of confusion when amends need to occur to |
| 144 | incorporate reviewer feedback. |
| 145 | |
| 146 | * issue 613 create-project: Add --permissions-only option |
| 147 | + |
| 148 | The new flag skips creating the associated Git repository, making the |
| 149 | new project suitable for use as a parent to inherit permissions from. |
| 150 | |
| 151 | * create-project: Optionally create empty initial commit |
| 152 | + |
| 153 | The `repo` tool used by Android doesn't like to clone an empty Git |
| 154 | repository, making it difficult to setup a review for the initial file |
| 155 | contents. create-project can now optionally create an empty initial |
| 156 | commit, permitting repo to sync the empty project. |
| 157 | |
| 158 | * Block off commands on a server for certain user groups. |
| 159 | + |
| 160 | The upload.allowGroup and receive.allowGroup settings in gerrit.config |
| 161 | can be used to restrict which users can perform git clone/fetch or git |
| 162 | push on this server. This can be useful if clone/fetch should be |
| 163 | limited to only site administrators, while normal users are supposed |
| 164 | to use to less expensive mirror servers. |
| 165 | |
| 166 | * issue 685 Define gerrit.replicateOnStartup to control replication |
| 167 | + |
| 168 | The automatic replicate every project action that occurs during server |
| 169 | startup can now be disabled by setting replicateOnStartup = false. |
| 170 | This is primarily useful for sites with extremely large numbers of |
| 171 | projects and replication targets, but runs the risk of having a target |
| 172 | be out of date relative to the master server. |
| 173 | |
| 174 | * New non-blocking function category "NoBlock" |
| 175 | + |
| 176 | Site defined approval categories may now use the function "NoBlock" |
| 177 | to permit scoring without blocking submission. This is mostly |
| 178 | useful for automated tools to provide optional feedback on a change. |
| 179 | |
| 180 | * Ability to reject commits from entering repository |
| 181 | + |
| 182 | The Git-note style branch `refs/meta/reject-commits` can be created |
| 183 | by the project owner or site administrator to define a list of |
| 184 | commits that must not be pushed into the repository. This can be |
| 185 | useful after performing a project-wide filter-branch operation to |
| 186 | prevent the older (pre-filter-branch) history from being reintroduced |
| 187 | into the repository. |
| 188 | |
| 189 | Bug Fixes |
| 190 | --------- |
| 191 | |
| 192 | Web UI |
| 193 | ~~~~~~ |
| 194 | * issue 498 Enable Keyboard navigation after change submit |
| 195 | * issue 691 Make ']' on last file go up to change |
| 196 | * issue 741 Make ENTER work for 'Create Group' |
| 197 | * issue 622 Denote a symbolic link in side-by-side viewer |
| 198 | * issue 612 Display empty branch list when project has no repository |
| 199 | * issue 672 Fix deleting exclusive branch level rights |
| 200 | * issue 645 Display 'No difference' between unchanged patchsets |
| 201 | * Display groups as links to group information |
| 202 | * Remove ctrl-d keybinding to discard comment, honor browser default |
| 203 | * Do not auto enable save buttons, wait for changes to be made |
| 204 | * Disable 'Create Group' button if group name not entered |
| 205 | * Show commit message in PatchScreen if old patch sets are compared |
| 206 | * Fixed a number of focus and shortcut bugs in Firefox, Chrome |
| 207 | |
| 208 | * issue 487 Work around buggy MyersDiff by killing threads |
| 209 | + |
| 210 | MyersDiff sometimes locked up in an infinite loop when computing |
| 211 | the intraline difference information for a file. These threads |
| 212 | are now killed after an administrator specified timeout |
| 213 | (cache.diff_intraline.timeout, default is 5 seconds). If the |
| 214 | timeout is reached the file content is displayed without intraline |
| 215 | differences. This offers reduced functionality to the end-user, but |
| 216 | prevents the "path of death" which usually took down a Gerrit server. |
| 217 | |
| 218 | * Hide access rights not visible to user |
| 219 | + |
| 220 | Users were able to view access rights for branches they didn't |
| 221 | actually have READ +1 permission on. This may have leaked |
| 222 | information about branches and/or groups to users that shouldn't |
| 223 | know about code names contained within either string. Users that |
| 224 | are not project owners may now only view access rights for branches |
| 225 | they have at least READ +1 permission on. |
| 226 | |
| 227 | Change Query |
| 228 | ~~~~~~~~~~~~ |
| 229 | * issue 689 Fix age:4days to parse correctly |
| 230 | * Make branch: operator slightly less ambiguous |
| 231 | |
| 232 | Push Support |
| 233 | ~~~~~~~~~~~~ |
| 234 | * issue 695 Permit changing only the author of a commit |
| 235 | + |
| 236 | Correcting only the author of a change failed to upload the new patch |
| 237 | set onto the existing change, as neither the message nor the files |
| 238 | were modified. Fixed. |
| 239 | |
| 240 | * issue 576 Allow Push Branch +3 to force replace a tag |
| 241 | + |
| 242 | Previously it was not possible to replace a tag object, even if |
| 243 | `git push \--force` was used. Fixed. |
| 244 | |
| 245 | * issue 690 Refuse to run receive-pack if refs/for/branch exists |
| 246 | + |
| 247 | If a server repository was corrupted by an administrator manually |
| 248 | creating a reference within the magical refs/for/ namespace, Gerrit |
| 249 | became confused when changes were uploaded for review. If this case |
| 250 | occurs push now aborts very early, with a clear error message |
| 251 | indicating the problem. To recover an administrator must clear the |
| 252 | refs/for/ namespace manually. |
| 253 | |
| 254 | * Allow receive-pack without Read +2 but with Push Head +1 |
| 255 | + |
| 256 | Users who had direct branch push permission but lacked the ability to |
| 257 | create changes for review were unable to push to a project. Fixed. |
| 258 | This (finally) makes Gerrit a replacement for Gitosis or Gitolite. |
| 259 | |
| 260 | Replication |
| 261 | ~~~~~~~~~~~ |
| 262 | * issue 683 Don't assume authGroup = "Registered Users" in replication |
| 263 | + |
| 264 | Previously a misconfigured authGroup in replication.config may have |
| 265 | caused the server to assume "Registered Users" instead of the group(s) |
| 266 | admin actually wanted. This may have caused the replication to see |
| 267 | (or not see) the correct set of projects. |
| 268 | |
| 269 | * issue 482 Upon replication fail, automatically retry later |
| 270 | + |
| 271 | If replication fails (for example due to temporary network |
| 272 | connectivity problems), other pending replication events to the |
| 273 | same server are deferred and retried later until successful. |
| 274 | |
| 275 | * Replicate all refs received from push |
| 276 | + |
| 277 | Replication now replicates all references, not just those that |
| 278 | appear under `refs/heads`, `refs/tags`, or `refs/changes`. This |
| 279 | fix may be relevant if the server supports user-private sandboxes |
| 280 | such as `refs/dev/'$\{username\}'/*`. |
| 281 | |
| 282 | * issue 658 Allow refspec shortcuts (push = master) for replication |
| 283 | |
| 284 | User Management |
| 285 | ~~~~~~~~~~~~~~~ |
| 286 | * Ensure proper escaping of LDAP group names |
| 287 | + |
| 288 | Some special characters may appear in LDAP group names, these must be |
| 289 | escape when looking up the group information from JNDI, otherwise the |
| 290 | lookup fails. Fixed by applying the necessary escape sequences. |
| 291 | |
| 292 | * Let login fail if user name cannot be set |
| 293 | + |
| 294 | If the user name for a new account is supposed to import from LDAP |
| 295 | but cannot because it is already in use by another user on this |
| 296 | server, the new account won't be created. |
| 297 | |
| 298 | Administration |
| 299 | ~~~~~~~~~~~~~~ |
| 300 | * gerrit.sh: actually verify running processes |
| 301 | + |
| 302 | Previously `gerrit.sh check` claimed a server was running if the |
| 303 | pid file was present, even if the process itself was dead. It now |
| 304 | checks `ps` for the process before claiming it is running. |
| 305 | |
| 306 | * Don't allow exclusive branch rights to block Owner inheritance |
| 307 | + |
| 308 | Exclusive branch level rights prevented the a higher level branch |
| 309 | owner from managing the branch rights, unless they had an additional |
| 310 | access right for the exclusive rights. Now Owner inheritance cannot |
| 311 | be blocked, ensuring that the higher level owner can manage their |
| 312 | entire namespace. |
| 313 | |
| 314 | * Allow overriding permissions from parent project |
| 315 | + |
| 316 | Permissions in the parent project could not be overridden in the |
| 317 | child project. Permissions can now be overidden if the category, |
| 318 | group name and reference name all match. |
| 319 | |
| 320 | Version |
| 321 | ------- |
| 322 | ef16a1816f293d00c33de9f90470021e2468a709 |