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