summaryrefslogtreecommitdiffstats
path: root/ReleaseNotes/ReleaseNotes-2.11.txt
blob: 49b13170beb5b98865a59babc6982035fcacfd4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
Release notes for Gerrit 2.11
=============================


Gerrit 2.11 is now available:

link:https://gerrit-releases.storage.googleapis.com/gerrit-2.11.war[
https://gerrit-releases.storage.googleapis.com/gerrit-2.11.war]

Gerrit 2.11 includes the bug fixes done with
link:ReleaseNotes-2.10.1.html[Gerrit 2.10.1] and
link:ReleaseNotes-2.10.2.html[Gerrit 2.10.2].
These bug fixes are *not* listed in these release notes.


Important Notes
---------------


*WARNING:* This release contains schema changes.  To upgrade:
----
  java -jar gerrit.war init -d site_path
  java -jar gerrit.war reindex -d site_path
----

*WARNING:* Upgrading to 2.11.x requires the server be first upgraded to 2.8 (or
2.9) and then to 2.11.x. If you are upgrading from 2.8.x or later, you may ignore
this warning and upgrade directly to 2.11.x.

*WARNING:* When upgrading from version 2.8.4 or older with a site that uses
Bouncy Castle Crypto, new versions of the libraries will be downloaded. The old
libraries should be manually removed from site's `lib` folder to prevent the
startup failure described in
link:https://code.google.com/p/gerrit/issues/detail?id=3084[Issue 3084].

*WARNING:* The 'Generate HTTP Password' capability has been
link:#remove-generate-http-password-capability[removed].

*WARNING:* Google will
link:https://developers.google.com/+/api/auth-migration[shut down their OpenID
service on 20th April 2015]. Administrators of sites whose users are registered
with Google OpenID accounts should encourage the users to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-sso.html#_multiple_identities[
add an alternative identity to their account] before this date. Users who do
not add an alternative identity before this date will need to create a new
account and ask the site administrator to
link:https://code.google.com/p/gerrit/wiki/SqlMergeUserAccounts[merge it].

*WARNING:* The
link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[
Edit Commit Message] REST API endpoint is removed

*WARNING:* The deprecated '/query' URL is removed and will now return `Not Found`.

Release Highlights
------------------


* link:http://code.google.com/p/gerrit/issues/detail?id=505[Issue 505]:
Changes can be created and edited directly in the browser. See the
link:#inline-editing[Inline editing] section for more details.

* Many improvements in the new change screen.

* The old change screen is removed.


New Features
------------


Web UI
~~~~~~

[[inline-editing]]
Inline Editing
^^^^^^^^^^^^^^

Refer to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/user-inline-edit.html[
inline editing user guide] for detailed instructions.

* New changes can be created directly in the browser via a 'Create Change'
button on the project info screen.

* New follow-up changes can be created via a 'Follow-Up' button on the change
screen.

* File content can be edited in a full screen CodeMirror editor with support for
themes and syntax highlighting.

* The CodeMirror screen can be configured in the same way as the side-by-side
diff screen.

* The file table in the change screen supports seamless navigation to the
CodeMirror editor.

* Edit mode can be started from the side-by-side diff screen with seamless
navigation to the CodeMirror editor.

* The commit message must now be changed in the context of a change edit. The
'Edit Message' button is removed from the change screen.

* Files can be added, deleted, restored and modified directly in browser.

Change Screen
^^^^^^^^^^^^^

* Remove the 'Edit Message' button from the change screen.
+
The commit message is now edited using the inline edit feature.

* Add support for changing parent revision with the 'Rebase' button.
+
Using the 'Rebase' button it is now possible to rebase a change onto a
different change (on the same destination branch), rather than only onto the
head of the destination branch or the latest patch set of the predecessor change.

* Show the parent commit's subject as a tooltip.

* Decorate abandoned changes in the 'Related Changes' list with a dark red dot.

* link:http://code.google.com/p/gerrit/issues/detail?id=2541[Issue 2541],
link:http://code.google.com/p/gerrit/issues/detail?id=2974[Issue 2974]:
Allow the 'Reply' button's
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#change.replyLabel[
label and tooltip] to be configured.

* Improve file sorting for C and C++ files.
+
Header files are now listed before implementation files.

* link:http://code.google.com/p/gerrit/issues/detail?id=3148[Issue 3148]:
Allow display of colored size bars to be enabled or disabled per user.
+
The 'Show Change Sizes As Colored Bars In Changes Table' setting is renamed to
'Show Change Sizes As Colored Bars' and is now used to also control how the
change size is shown per file in the file table.
+
When enabled (which is the default), the change size per file is shown as a sum
of lines added/removed, and also representated by a colored bar showing the
proportion of added/removed lines.
+
When disabled, the colored bar is not shown and the change size per file is shown
in the same way as it used to be in the old change screen.

* Show changes across all projects and branches in the `Same Topic` tab.


Side-By-Side Diff
^^^^^^^^^^^^^^^^^

* New button to switch between side-by-side diff and unified diff.

* New preference setting to toggle auto-hiding of the diff table header.
+
The setting determines whether or not the diff table header with the patch set
selection should be automatically hidden when scrolling down more than half of
a page.

* Highlight search results on scrollbar.
+
Search results in vim mode are highlighted in the scrollbar with gold
colored annotations.

* Set line length to 72 characters for commit messages.

* Add syntax highlighting for several new modes:

** link:https://code.google.com/p/gerrit/issues/detail?id=2848[Issue 2848]: CSharp
** Dart
** Dockerfile
** GLSL shader
** Go
** Objective C
** RELAX NG
** link:http://code.google.com/p/gerrit/issues/detail?id=2779[Issue 2779]: reStructured text
** Soy


Projects Screen
^^^^^^^^^^^^^^^

* Add pagination and filtering on the branch list page.

* Add an 'Edit Config' button on the project info page.
+
The button creates a new change on the `refs/meta/config` branch and opens the
`project.config` file in the inline editor.
+
This allows project owners to easily edit the `project.config` file from the
browser, which is useful since it is possible that not all configuration options
are available in the UI.

REST
~~~~

Accounts
^^^^^^^^

* Add new link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#suggest-account[
Suggest Account endpoint].

Changes
^^^^^^^

* The link:https://gerrit-review.googlesource.com/Documentation/2.10/rest-api-changes.html#message[
Edit Commit Message] endpoint is removed in favor of the new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[
Change commit message in Change Edit] and
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[
Publish Change Edit] endpoints.

* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#check-change[
Check Change endpoint].
+
In the past, Gerrit bugs, lack of transactions, and unreliable NoSQL backends
have at various times produced a bewildering variety of corrupt states.
+
This endpoint can be used to detect, explain, and repair some of these possible
states of a change.

* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-revision-actions[
Get Revision Actions endpoint].

* Add
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#change-actions[
`CHANGE_ACTIONS`] option on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-change-detail[
Get Change Detail] endpoint.


Change Edits
^^^^^^^^^^^^

Several new endpoints are added to support the inline edit feature.

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-detail[
Get Edit Detail].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-edit-file[
Change file content in Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#post-edit[
Restore file content in Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[
Change commit message in Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit-file[
Delete file in Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-file[
Retrieve file content from Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#get-edit-message[
Retrieve commit message from Change Edit or current patch set of the change].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[
Publish Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#rebase-edit[
Rebase Change Edit].

* link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#delete-edit[
Delete Change Edit].


Projects
^^^^^^^^

* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#delete-branches[
Delete Branches] endpoint.

* Add filtering and pagination options on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-branches[
List Branches] endpoint.

* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-tags[
List Tags] endpoint.

* Add new
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#get-tag[
Get Tag] endpoint.


Configuration
~~~~~~~~~~~~~

* Add support for
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#auth.httpExternalIdHeader[
HTTP external ID header].
+
This can be used when authenticating with a federated identity token from
an external system, e.g. GitHub's OAuth 2.0 authentication.

* Add
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-labels.html#label_copyAllScoresIfNoChange[
`copyAllScoresIfNoChange`] setting for labels.
+
Allows to copy scores forward when a new patch set is uploaded that has the same
parent tree, code delta, and commit message as the previous patch set.

* link:https://code.google.com/p/gerrit/issues/detail?id=2786[Issue 2786]:
Allow non-administrators to modify user accounts.
+
A new global capability,
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_modifyAccount[
'Modify Account'], which allows the granted group members to modify user account
settings via the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].
+
Modification of users' SSH keys is still restricted to administrators.

* Add support for
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#ldap.useConnectionPooling[
LDAP connection pooling].

* link:https://code.google.com/p/gerrit/issues/detail?id=699[Issue 699]: Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#receive.maxBatchChanges[
limit max number of changes pushed in a batch].
+
Can be overridden by members of groups that are granted the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_batchChangesLimit[
Batch Changes Limit] capability.

* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.disableReverseDnsLookup[
disable reverse DNS lookup].
+
This option can be set to improve push time from hosts without a reverse DNS
entry.

* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#cache.projects.loadOnStartup[
load the project cache at server startup].

* Allow members of groups granted the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/access-control.html#capability_accessDatabase[
AccessDatabase capability] to view metadata refs.

* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#http.addUserAsRequestAttribute[
add the user to the http request attributes].

* Allow to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearch[
enable full text search in memory for review suggestions].
+
The maximum number of reviewers evaluated can be limited with
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#suggest.fullTextSearchMaxMatches[
suggest.fullTextSearchMaxMatches].

* Allow to provide an alternative
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#gerrit.secureStoreClass[
secure store implementation].

* link:https://code.google.com/p/gerrit/issues/detail?id=1195[Issue 1195]:
Allow projects to be configured to create a new change for every uploaded commit that is not in the target branch.

* Allow to configure
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#container.daemonOpt[
options to pass to the daemon].

* Allow to configure
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#sshd.rekeyBytesLimit[
SSHD rekey parameters].

Daemon
~~~~~~

* Allow to enable the http daemon when running in slave mode.
+
The `--enable-httpd` option can be used in conjunction with the `--slave` option
to allow clients to fetch from the slave over the http protocol.
+
HTTP Authentication may also be used when running in slave mode.

* Include the submitter's name in the change message when a change is submitted.

* Add a message to changes created via cherry pick.
+
When a change is cherry-picked to another branch using the cherry-pick action,
the message 'Patch Set <number>: Cherry Picked from branch <name>.' is added as
a change message on the created change.

* Don't send 'new patch set' notification emails for trivial rebases.


SSH
~~~

* link:https://code.google.com/p/gerrit/issues/detail?id=2797[Issue 2797]:
Add support for ECDSA based public key authentication.

* Add new commands
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-ls-level.html[
`logging ls-level`] and
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-logging-set-level.html[
`logging set-level`] to show and set the logging level at runtime.

* link:https://code.google.com/p/gerrit/issues/detail?id=602[Issue 602]:
Add `--json` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[
`review` SSH command].
+
Review input can be given to the `review` command in JSON format corresponding
to the REST API's
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#review-input[
ReviewInput] entity.

*  link:https://code.google.com/p/gerrit/issues/detail?id=2824[Issue 2824]:
Add `--rebase` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-review.html[
`review` SSH command].

* Add `--clear-http-password` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].

* Add `--preferred-email` option to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/cmd-set-account.html[
`set-account` SSH command].

Email
~~~~~

* Add `$change.originalSubject` field for email templates.
+
GMail threads messages together by subject and ignores the list headers included
by Gerrit.
+
Site administrators that run servers whose end-user base is mostly on GMail can
modify the site's `ChangeSubject.vm` template to use `$change.originalSubject` to
improve threading for GMail inboxes.
+
The `originalSubject` field is automatically taken from the existing subject
field during first use.


Plugins
~~~~~~~

General
^^^^^^^

* Plugins can listen to account group membership changes.
+
The audit log service allows to register listeners to group member added and
group member deleted events. A default listener logs these events to the database
as before, but additional listeners may now be registered for these events using
the `GroupMemberAuditListener` interface.

* Plugins can validate ref operations.
+
Plugins implementing the `RefOperationValidationListener` interface can
perform additional validation checks against ref creation/deletion operations
before they are applied to the git repository.

* Plugins can provide project-aware top menu extensions
+
Plugins can provide sub-menu items within the 'Projects' context. The
'${projectName}' placeholder is replaced by the project name.

* Auto register static/init.js as JavaScript plugin.
+
When a plugin does not expose Guice Modules explicitly, auto discover and
register static/init.js as WebUi extension if found by the plugin content
scanner.

* Plugins can validate outgoing emails.
+
Plugins implementing `OutgoingEmailValidationListener` interface can filter
and modify outgoing emails before they are sent.

* Plugins that provide initialization steps may now use functionality
from InitUtil in core Gerrit.

* Plugins can post change reviews with historic timestamps.
+
This allows, for example, to write a plugin that can import a project including
review information from another Gerrit server.

* New extensions in the Java Plugin API:

** Set/Put topic.
** Get mergeable status.
** link:https://code.google.com/p/gerrit/issues/detail?id=461[Issue 461]:
Get current user.
** Get file content.
** Get file diff.
** Get comments and drafts.
** Get change edit.

Replication
^^^^^^^^^^^

* Projects can be specified with wildcard in the `start` command.


Bug Fixes
---------

Daemon
~~~~~~

* Change 'Merge topic' to 'Merge changes from topic'.
+
When multiple changes from a topic are submitted resulting in a merge commit,
the title of the merge commit is now 'Merge changes from topic' instead of
'Merge topic'.

* Fix visibility checks for `refs/meta/config`.
+
Under some conditions it was possible for the `refs/meta/config` branch to be
erroneously considered not visible to the user.

* Sort list of updated changes in output from push.

* link:https://code.google.com/p/gerrit/issues/detail?id=2940[Issue 2940]:
Improve warning messages when `Change-Id` is missing in the commit message.

** Add a hint to amend the commit after installing the commit-msg hook.
** Don't show 'Suggestion for commit message' when `Change-Id` is missing.

* Allow to publish draft patch sets even when `allowDrafts` is false.
+
If a user uploaded a change while `allowDrafts` was enabled, and then it was
disabled by the administrator, the uploaded change could not be published and
was stuck in the draft state.

* link:https://code.google.com/p/gerrit/issues/detail?id=3249[Issue 3249]:
Fix server error when checking mergeability of a change.

* Workaround Guice bug "getPathInfo not decoded".
+
Due to link:https://github.com/google/guice/issues/745[Guice issue 745], cloning
of a repository with a space in its name was impossible.

* Print proper names for tasks in output of `show-queue` command.
+
Some tasks were not displayed with the proper name.


SSH
~~~

* Prevent double authentication for the same public key.


Secondary Index / Search
~~~~~~~~~~~~~~~~~~~~~~~~

* link:https://code.google.com/p/gerrit/issues/detail?id=2822[Issue 2822]:
Improve Lucene analysis of words linked with underscore or dot.
+
Instead of treating words linked with underscore or dot as one word, Lucene now
treats them as separate words.

* Fix support for `change~branch~id` in query syntax.


Configuration
~~~~~~~~~~~~~

[[remove-generate-http-password-capability]]
* Remove the 'Generate HTTP Password' capability.
+
The 'Generate HTTP Password' capability has been removed to close a security
vulnerability.  Now only administrators are allowed to generate and delete other
users' http passwords via the REST or SSH interface.
+
It is encouraged to clean up your `project.config` settings after upgrading.

* Fix support for multiple `footer` tokens in tracking ID config.
+
Contrary to
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#trackingid[
the documentation], if more than one `footer` token was specified in the
`trackingid` section, only the first was used.

* Treat empty
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[
`hooks.*`] values as missing, rather than trying to execute the hooks
directory.

* Fix `changed-merged` hook configuration.
+
Contrary to the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/config-gerrit.html#hooks[
documentation], the changed-merged hook configuration value was being
read from `hooks.changeMerged`. Fix to use `hooks.changeMergedHook` as
documented.

Web UI
~~~~~~

* link:http://code.google.com/p/gerrit/issues/detail?id=3044[Issue 3044]:
Remove stripping `#` in login redirect.

Change Screen
^^^^^^^^^^^^^

* link:http://code.google.com/p/gerrit/issues/detail?id=2894[Issue 2894]:
Link to change screen for merged or abandoned changes in the 'Related Changes'
list.
+
For changes in the 'Related Changes' tab that are closed the link was
bringing the user to GitWeb, and not as expected to the change screen.

* link:http://code.google.com/p/gerrit/issues/detail?id=3147[Issue 3147]:
Allow to disable muting of common path prefixes in the file list.
+
In the file table, parts of the file path that are common to the file previously
listed are muted. The purpose of this is to make it easier to see files that all
belong under the same path, but some users find it annoying.
+
This feature can now be enabled or disabled, per user, with the 'Mute Common
Path Prefixes In File List' setting.

* link:http://code.google.com/p/gerrit/issues/detail?id=3130[Issue 3130]:
Remove special handling of 'LGTM' in review comments
+
Typing 'LGTM' in the review cover message no longer automatically selects the
highest available Code-Review score.

* Show a confirmation dialog before deleting a draft change or patch set.
+
Previously there was no confirmation and a draft change or revision patch
set would be lost if the button was accidentally clicked.

* link:https://code.google.com/p/gerrit/issues/detail?id=2533[Issue 2533]:
Improve the layout and color scheme of buttons.
+
Several improvements have been made:
+
** Move 'Publish' and 'Delete Change/Revision' buttons into header.
+
If a change/revision is a draft the natural next step is to publish (or delete)
it, hence these buttons should be displayed in a more prominent place.

** Highlight the 'Publish' button in blue.
+
If a change is a draft the natural next step is to publish it, hence
the 'Publish' button should be highlighted similar to the quick
approve button.

** Fix the border color of buttons on the reply popup.
+
The buttons are blue but had white borders, which was inconsistent with the
buttons on the change screen.

** Remove red color for 'Abandon' and 'Restore' buttons.
+
There is nothing dangerous about these operations that justifies
highlighting the buttons in red color. When the buttons are clicked
there is a popup where the user must confirm the operation, so it can
still be canceled.

** Hide quick approve button for draft changes.
+
A draft change cannot be submitted, hence quick approving it is not that
important. Hiding the quick approve button on draft changes makes space in the
header for displaying more important actions such as 'Publish'.

* Differentiate between conflicts and already merged errors in cherry-pick
+
When a cherry-pick operation failed with 'Cherry pick failed' error, there was no
way to know the reason for the failure: merge conflict or the commit is already
on the target branch.  These failures are now differentiated and an appropriate
error is reported.

* link:https://code.google.com/p/gerrit/issues/detail?id=2837[Issue 2837]:
Improve display of long user names for collapsed comments in history.
+
If there were several users with long user names with the same prefix, e.g.
'AutomaticGerritVoterLinux' and 'AutomaticGerritVoterWindows', they would both
be shown as 'AutomaticGerritVo...' and users had to expand the comment to see
the full user name.
+
The ellipsis is now inserted in the middle of the user name so that the start
and end of the user name are always visible, e.g. 'AutomaticG...VoterLinux' and
'AutomaticG...terWindows'.

* link:https://code.google.com/p/gerrit/issues/detail?id=2992[Issue 2992]:
Fix display of review comments for Chrome on Android.
+
Chrome for Android has Font Boosting, which caused the review comments to
be displayed too large.

* link:https://code.google.com/p/gerrit/issues/detail?id=2909[Issue 2909]:
Make change owner votes removable.
+
If a change owner voted on a change, it was not possible for anyone other
than the owner to remove the vote.

* Preserve topic when cherry-picking.
+
When a change is cherry-picked, the topic from the source change is preserved
on the newly created change.

* link:http://code.google.com/p/gerrit/issues/detail?id=3007[Issue 3007]:
Make the selected tab persistent.
+
If a change from the 'Same Topic' tab was clicked, the selected tab would reset
to the default tab ('Related Changes').

* Left-align column titles in the file list.

* Increase right margin of download box to make space for scrollbar.
+
Under some circumstances the browser's scrollbar would be shown over the
copy-to-clipboard icons in the download dropdown.

* Display +1 score's text next to the checkbox for simple boolean labels.
+
In the reply box, the text of the label score is displayed on the right hand
side when a score is selected, but this was missing for simple boolean labels.

* Don't show missing accounts as reviewer suggestions.

* Show the email address that matched the search in reviewer suggestions.
+
When matching accounts by email address against an external account, results
now show the email address that matched, not the preferred email address.

* Fix accidental reviewer selection on slow networks.

* link:http://code.google.com/p/gerrit/issues/detail?id=3120[Issue 3120]:
Align parent weblinks with parent commits in the commit box.


Side-By-Side Diff
^^^^^^^^^^^^^^^^^

* Return to normal mode after editing a draft comment.
+
Previously it would remain in visual mode.

* Fix C++ header and source syntax highlighting
+
cpp and hpp files were sometimes rendered with C mode and not the extended C++
mode.  This prevented keywords like `class` from being colored by the
highlighter.


Project Screen
^^^^^^^^^^^^^^

* Fix alignment of checkboxes on project access screen.
+
The 'Exclusive' checkbox was not aligned with the other checkboxes.

REST API
~~~~~~~~

Changes
^^^^^^^

* Remove the administrator restriction on the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#index-change[
index change] endpoint.
+
The endpoint can now be used by any user who has visibility of the change.

* Only include account ID in responses unless `DETAILED_ACCOUNTS` option is set.
+
The behavior was inconsistent with the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-accounts.html#account-info[
documentation]. In the default case it was including only the account name,
rather than only the account ID.

* Include revision's ref in responses.
+
The ref of a revision was only returned as part of the fetch info, which is only
available if the download commands are installed.

* Correctly set the limit to the default when no limit is given in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#suggest-reviewers[
suggest reviewers] endpoint.

* Return correct response from 'delete draft' endpoints.
+
When the `change.allowDrafts` setting is False, it is not allowed to delete
draft changes or patch sets.
+
In this case the response `405 Method Not Allowed` is now returned, instead of
`409 Conflict`.


Projects
^^^^^^^^

* Make it mandatory to specify at least one of the `--prefix`, `--match` or `--regex`
options in the
link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-projects.html#list-projects[
list projects] endpoint.

* link:https://code.google.com/p/gerrit/issues/detail?id=2706[Issue 2706]:
Do not delete branches concurrently.
+
Deleting multiple branches from the UI was resulting in a server error when
branches were in the packed-refs.

* Add retry logic for lock failure when deleting a branch.

* link:http://code.google.com/p/gerrit/issues/detail?id=3153[Issue 3153]:
Fix handling of project names ending with `.git`.
+
The projects REST API documentation states that the `.git` suffix will be
stripped off the input project name, if present.
+
This was working for the 'Create Project' endpoint, but not for any of the
others.


Plugins
~~~~~~~

Replication
^^^^^^^^^^^

* Create missing repositories on the remote when replicating with the git
protocol.

* Make `createMissingRepositories = false` take effect on `project-created` event.
+
Previously `createMissingRepositories = false` would prevent the replication
plugin from trying to create a new project when a `ref-updated` event was fired,
but when a `project-created` event was fired the replication plugin would try to
create a project on the remote.


Upgrades
--------

* Update Antlr to 3.5.2.

* Update ASM to 5.0.3.

* Update Bouncycastle to 1.51.

* Update CodeMirror to 4.10.0-6-gd0a2dda.

* Update Guava to 18.0.

* Update Guice to 4.0-beta5.

* Update GWT to 2.7.

* Update gwtjsonrpc to 1.7-2-g272ca32.

* Update gwtorm to 1.14-14-gf54f1f1.

* Update Jetty to 9.2.9.v20150224.

* Update JGit to 3.7.0.201502260915-r.58-g65c379e.

* Update Lucene to 4.10.2.

* Update Parboiled to 1.1.7.

* Update Pegdown to 1.4.2.

* Update SSHD to 0.14.0.