blob: 00b957eb5d3c1560af8e8d7a58674a19974f109b [file] [log] [blame]
Edwin Kempin4fd84c92014-04-30 13:23:15 +02001= Review UI
2
3Reviewing changes is an important task and the Gerrit Web UI provides
4many functionalities to make the review process comfortable and
5efficient. This is a guide through the review UI that explains the
6different functions and UI elements.
7
8[[change-screen]]
9== Change Screen
10
11The change screen shows the details of a single change and provides
12various actions on it.
13
14image::images/user-review-ui-change-screen.png[width=800, link="images/user-review-ui-change-screen.png"]
15
16[[commit-message]]
17=== Commit Message Block
18
19The focus of the change screen is on the commit message since this is
20the most important information about a change. The numeric change ID
21and the change status are displayed right above the commit message.
22
23image::images/user-review-ui-change-screen-commit-message.png[width=800, link="images/user-review-ui-change-screen-commit-message.png"]
24
25The commit message can be edited directly in the Web UI by clicking on
26the `Edit Message` button in the change header. This opens a drop-down
27editor box in which the commit message can be edited. Saving
28modifications of the commit message automatically creates a new patch
29set for the change. The commit message may only be edited on the
30current patch set.
31
32image::images/user-review-ui-change-screen-edit-commit-message.png[width=800, link="images/user-review-ui-change-screen-edit-commit-message.png"]
33
34The numeric change ID is a link to the change and clicking on it
35refreshes the change screen. By copying the link location you can get
36the permalink of the change.
37
38image::images/user-review-ui-change-screen-permalink.png[width=800, link="images/user-review-ui-change-screen-permalink.png"]
39
40The change status shows the state of the change:
41
42- `Needs <label>`:
43+
44The change is in review and an approval on the shown label is still
45required to make the change submittable.
46
47- `Not <label>`:
48+
49The change is in review and a veto vote on the shown label is
50preventing the submit.
51
Edwin Kempinb2a8ae32014-05-02 15:03:22 +020052[[not-current]]
Edwin Kempin4fd84c92014-04-30 13:23:15 +020053- `Not Current`:
54+
55The currently viewed patch set is outdated.
56+
57Please note that some operations, like voting, are not available on
58outdated patch sets, but only on the current patch set.
59
60- `Ready to Submit`:
61+
62The change has all necessary approvals and may be submitted.
63
64- `Submitted, Merge Pending`:
65+
66The change was submitted and was added to the merge queue.
67+
68The change stays in the merge queue if it depends on a change that is
69still in review. In this case it will get automatically merged when all
70predecessor changes have been merged.
71+
72This status can also mean that the change depends on an abandoned
73change or on an outdated patch set of another change. In this case you
74may want to rebase the change.
75
76- `Merged`:
77+
78The change was successfully merged into the destination branch.
79
80- `Abandoned`:
81+
82The change was abandoned.
83
84- `Draft`:
85+
86The change is a draft that is only visible to the change owner, the
87reviewers that were explicitly added to the change, and users who have
88the link:access-control.html#category_view_drafts[View Drafts] global
89capability assigned.
90
91[[commit-info]]
92=== Commit Info Block
93
94The commit info block shows information about the commit of the
95currently viewed patch set.
96
97It displays the author and the committer as links to a list of this
98person's changes that have the same status as the currently viewed
99change.
100
101The commit ID and the link:user-changeid.html[Change-Id] are both
102displayed with a copy-to-clipboard icon that allows the ID to be copied
103into the clipboard.
104
105If a Git web browser, such as GitWeb or Gitiles, is configured, there
106is also a link to the commit in the Git web browser.
107
108image::images/user-review-ui-change-screen-commit-info.png[width=800, link="images/user-review-ui-change-screen-commit-info.png"]
109
Edwin Kempin69263d32014-05-13 16:08:59 +0200110If a merge commit is viewed this is highlighted by an icon. In this
111case the parent commits are also shown.
Edwin Kempinb6c2a3b2014-05-14 10:37:17 +0200112
113image::images/user-review-ui-change-screen-commit-info-merge-commit.png[width=800, link="images/user-review-ui-change-screen-commit-info-merge-commit.png"]
114
Edwin Kempinf1a84f92014-04-30 15:37:48 +0200115[[change-info]]
116=== Change Info Block
117
118The change info block contains detailed information about the change
119and offers actions on the change.
120
121image::images/user-review-ui-change-screen-change-info.png[width=800, link="images/user-review-ui-change-screen-change-info.png"]
122
123- Change Owner:
124+
125The owner of the change is displayed as a link to a list of the owner's
126changes that have the same status as the currently viewed change.
127+
128image::images/user-review-ui-change-screen-change-info-owner.png[width=800, link="images/user-review-ui-change-screen-change-info-owner.png"]
129
130- Reviewers:
131+
132The reviewers of the change are displayed as chip tokens.
133+
134For each reviewer there is a tooltip that shows on which labels the
135reviewer is allowed to vote.
136+
137New reviewers can be added by clicking on the `Add...` button. Typing
138into the pop-up text field activates auto completion of user and group
139names.
140+
141Reviewers can be removed from the change by clicking on the `x` icon
142in the reviewer's chip token. Removing a reviewer also removes the
143current votes of the reviewer. The removal of votes is recorded as a
144message on the change.
145+
146Removing reviewers is protected by permissions:
147
148** Users can always remove themselves.
149** The change owner may remove any zero or positive score.
150** Users with the link:access-control.html#category_remove_reviewer[
151 Remove Reviewer] access right, the branch owner, the project owner
152 and Gerrit administrators may remove anyone.
153
154+
155image::images/user-review-ui-change-screen-change-info-reviewers.png[width=800, link="images/user-review-ui-change-screen-change-info-reviewers.png"]
156
157- Project / Branch / Topic:
158+
159The name of the project for which the change was done is displayed as a
160link to the link:user-dashboards.html#project-default-dashboard[default
161dashboard] of the project. If no default dashboard is defined, the link
162opens a list of open changes on the project.
163+
164Clicking on the settings icon on the right side navigates to the
165project administration screen.
166+
167The name of the destination branch is displayed as a link to a list
168with all changes on this branch that have the same status as the
169currently viewed change.
170+
171If a topic was assigned to the change it is displayed below the branch.
172By clicking on the edit icon the topic can be set. This requires the
173link:access-control.html#category_edit_topic_name[Edit Topic Name]
174access right. To be able to set a topic on a closed change, the
175`Edit Topic Name` must be assigned with the `force` flag.
176+
177image::images/user-review-ui-change-screen-change-info-project-branch-topic.png[width=800, link="images/user-review-ui-change-screen-change-info-project-branch-topic.png"]
178
179- Submit Strategy:
180+
181The link:project-setup.html#submit_type[submit strategy] that will be
182used to submit the change. The submit strategy is only displayed for
183open changes.
184+
185image::images/user-review-ui-change-screen-change-info-submit-strategy.png[width=800, link="images/user-review-ui-change-screen-change-info-submit-strategy.png"]
186+
187If a change cannot be merged due to path conflicts this is highlighted
188by a bold red `Cannot Merge` label.
189+
190image::images/user-review-ui-change-screen-change-info-cannot-merge.png[width=800, link="images/user-review-ui-change-screen-change-info-cannot-merge.png"]
191
192- Time of Last Update:
193+
194image::images/user-review-ui-change-screen-change-info-last-update.png[width=800, link="images/user-review-ui-change-screen-change-info-last-update.png"]
195
196- Actions:
197+
198Depending on the change state and the permissions of the user, different
199actions are available on the change:
200
David Pursehouse53b1bd02014-05-09 11:18:08 +0900201** `Submit`:
Edwin Kempinf1a84f92014-04-30 15:37:48 +0200202+
203Submits the change and adds it to the merge queue. If possible the
204change is merged into the destination branch.
205+
David Pursehouse53b1bd02014-05-09 11:18:08 +0900206The `Submit` button is available if the change is submittable and
Edwin Kempinf1a84f92014-04-30 15:37:48 +0200207the link:access-control.html#category_submit[Submit] access right is
208assigned.
209+
210It is also possible to submit changes that have merge conflicts. This
211allows to do the conflict resolution for a change series in a single
212merge commit and submit the changes in reverse order.
213
214** `Abandon`:
215+
216Abandons the change.
217+
218The `Abandon` button is only available if the change is open and the
219link:access-control.html#category_abandon[Abandon] access right is
220assigned.
221+
222When a change is abandoned, a panel appears that allows one to type a
223comment message to explain why the change is being abandoned.
224
225** `Restore`:
226+
227Restores the change.
228+
229The `Restore` button is only available if the change is abandoned and
230the link:access-control.html#category_abandon[Abandon] and the
231link:access-control.html#category_push[Push] access right is
232assigned.
233+
234When a change is restored, a panel appears that allows one to type a
235comment message to explain why the change is being restored.
236
237** `Rebase`:
238+
239Rebases the change. The rebase is always done with content merge
240enabled. If the rebase is successful a new patch set with the rebased
241commit is created. If the rebase fails, there are conflicts that have
242to be resolved manually.
243+
244If the change does not depend on another open change, it is rebased
245onto the tip of the destination branch.
246+
247If the change depends on another open change, it is rebased onto the
248current patch set of that other change.
249+
250The `Rebase` button is only available if the change can be rebased and
251the link:access-control.html#category_rebase[Rebase] access right is
252assigned. Rebasing merge commits is not supported.
253
254** `Cherry-Pick`:
255+
256Allows to cherry-pick the change to another branch. The destination
257branch can be selected from a dialog. Cherry-picking a change creates a
258new open change on the selected destination branch.
259+
260It is also possible to cherry-pick a change to the same branch. This is
261effectively the same as rebasing it to the current tip of the
262destination branch. This can be used to remove dependencies on other
263open changes.
264+
265Users can only cherry-pick changes to branches for which they are
266allowed to upload changes for review.
267
268** `Publish`:
269+
270Publishes the currently viewed draft patch set. If this is the first
271patch set of a change that is published, the change will be published
272as well.
273+
274The `Publish` button is only available if a draft patch set is viewed
275and the user is the change owner or has the
276link:access-control.html#category_publish_drafts[Publish Drafts] access
277right assigned.
278
279** `Delete Change` / `Delete Revision`:
280+
281Deletes the draft change / the currently viewed draft patch set.
282+
283The `Delete Change` / `Delete Revision` buttons are only available if a
284draft patch set is viewed and the user is the change owner or has the
285link:access-control.html#category_delete_drafts[Delete Drafts] access
286right assigned.
287
288** Further actions may be available if plugins are installed.
289
290+
291image::images/user-review-ui-change-screen-change-info-actions.png[width=800, link="images/user-review-ui-change-screen-change-info-actions.png"]
292
293- Labels & Votes:
294+
295Approving votes are colored green; veto votes are colored red.
296+
297image::images/user-review-ui-change-screen-change-info-labels.png[width=800, link="images/user-review-ui-change-screen-change-info-labels.png"]
298
Edwin Kempinab777f12014-05-02 11:47:57 +0200299[[files]]
300=== File List
301
302The file list shows the files that are modified in the currently viewed
303patch set.
304
305image::images/user-review-ui-change-screen-file-list.png[width=800, link="images/user-review-ui-change-screen-file-list.png"]
306
307The checkboxes in front of the file names allow files to be marked as reviewed.
308
309image::images/user-review-ui-change-screen-file-list-mark-as-reviewed.png[width=800, link="images/user-review-ui-change-screen-file-list-mark-as-reviewed.png"]
310
311The type of a file modification is indicated by the character in front
312of the file name:
313
314- 'no character' (Modified):
315+
316The file existed before this change and is modified.
317
318- `A` (Added):
319+
320The file is newly added.
321
322- `D` (Deleted):
323+
324The file is deleted.
325
326- `R` (Renamed):
327+
328The file is renamed.
329
330- `C` (Copied):
331+
332The file is new and is copied from an existing file.
333
334image::images/user-review-ui-change-screen-file-list-modification-type.png[width=800, link="images/user-review-ui-change-screen-file-list-modification-type.png"]
335
336If a file is renamed or copied, the name of the original file is
337displayed in gray below the file name.
338
339image::images/user-review-ui-change-screen-file-list-rename.png[width=800, link="images/user-review-ui-change-screen-file-list-rename.png"]
340
341Repeating path segments are grayed out.
342
343image::images/user-review-ui-change-screen-file-list-repeating-paths.png[width=800, link="images/user-review-ui-change-screen-file-list-repeating-paths.png"]
344
345Inline comments on a file are shown in the `Comments` column.
346
347Draft comments, i.e. comments that have been written by the current
348user but not yet published, are highlighted in red.
349
350New comments from other users, that were published after the current
351user last reviewed this change, are highlighted in bold.
352
353image::images/user-review-ui-change-screen-file-list-comments.png[width=800, link="images/user-review-ui-change-screen-file-list-comments.png"]
354
355The size of the modifications in the files can be seen in the `Size`
356column. The footer row shows the total size of the change.
357
358For files, the `Size` column shows the sum of inserted and deleted
359lines as one number. For the total size, inserted and deleted lines are
360shown separately. In addition, the number of insertions and deletions
361is shown as a bar. The size of the bar indicates the amount of changed
362lines, and its coloring in green and red shows the proportion of
363insertions to deletions.
364
365The size information is useful to easily spot the files that contain
366the most modifications; these files are likely to be the most relevant
367files for this change. The total change size gives an estimate of how
368long a review of this change may take.
369
370image::images/user-review-ui-change-screen-file-list-size.png[width=800, link="images/user-review-ui-change-screen-file-list-size.png"]
371
372In the header of the file list, the `Diff Against` selection can be
373changed. This selection allows one to choose if the currently viewed
374patch set should be compared against its base or against another patch
375set of this change. The file list is updated accordingly.
376
377The file list header also provides an `Open All` button that opens the
378diff views for all files in the file list.
379
380image::images/user-review-ui-change-screen-file-list-header.png[width=800, link="images/user-review-ui-change-screen-file-list-header.png"]
381
Edwin Kempinb2a8ae32014-05-02 15:03:22 +0200382[[patch-sets]]
383=== Patch Sets
384
385The change screen only presents one patch set at a time. Which patch
386set is currently viewed can be seen from the `Patch Sets` drop-down
387panel in the change header. It shows the number of the currently viewed
388patch set and the total number of patch sets, in the form: "current
389patch set/number of patch sets".
390
391If a non-current patch set is viewed this is indicated by the
392link:#not-current[Not Current] change state. Please note that some
393operations are only available on the current patch set.
394
395image::images/user-review-ui-change-screen-patch-sets.png[width=800, link="images/user-review-ui-change-screen-patch-sets.png"]
396
397The patch set drop-down list shows the list of patch sets and allows to
398switch between them. The patch sets are sorted in descending order so
399that the current patch set is always on top.
400
401Patch sets that have unpublished draft comments are marked by a comment
402icon.
403
404Draft patch sets are marked with `DRAFT`.
405
406image::images/user-review-ui-change-screen-patch-set-list.png[width=800, link="images/user-review-ui-change-screen-patch-set-list.png"]
407
Edwin Kempin0cb1ccb2014-05-05 13:22:03 +0200408[[download]]
409=== Download
410
411The `Download` drop-down panel in the change header offers commands and
412links for downloading the currently viewed patch set.
413
414image::images/user-review-ui-change-screen-download-commands.png[width=800, link="images/user-review-ui-change-screen-download-commands.png"]
415
416The available download commands depend on the installed Gerrit plugins.
417The most popular plugin for download commands, the
418link:https://gerrit-review.googlesource.com/#/admin/projects/plugins/download-commands[
419download-commands] plugin, provides commands to checkout, pull and
420cherry-pick a patch set.
421
422Each command has a copy-to-clipboard icon that allows the command to be
423copied into the clipboard. This makes it easy to paste and execute the
424command on a Git command line.
425
426If several download schemes are configured on the server (e.g. SSH and
427HTTP) there is a drop-down list to switch between the download schemes.
428Gerrit automatically remembers the download scheme that was last chosen
429and selects this download scheme the next time the download commands
430drop-down panel is opened.
431
432The `Patch-File` links provide the Git patch file for the currently
433viewed patch set for download. The patch file can be base64 encoded or
434zipped.
435
436The `Archive` links allow one to download an archive with the contents
437of the currently viewed patch set. The archive is offered in several
438formats (e.g. tar and tbz2); which formats are available depends on the
439configuration of the server.
440
441image::images/user-review-ui-change-screen-download-commands-list.png[width=800, link="images/user-review-ui-change-screen-download-commands-list.png"]
442
Edwin Kempin811bd582014-05-05 13:39:24 +0200443[[included-in]]
444=== Included In
445
446For merged changes the `Included In` drop-down panel is available in
447the change header.
448
449image::images/user-review-ui-change-screen-included-in.png[width=800, link="images/user-review-ui-change-screen-included-in.png"]
450
451The `Included In` drop-down panel shows the branches and tags in which
452the change is included. E.g. if a change fixes a bug, this allows to
453quickly see in which released versions the bug-fix is contained
454(assuming that every release is tagged).
455
456image::images/user-review-ui-change-screen-included-in-list.png[width=800, link="images/user-review-ui-change-screen-included-in-list.png"]
457
Edwin Kempin981cc952014-05-05 14:04:08 +0200458[[star]]
459=== Star Change
460
461The star icon in the change header allows to mark the change as a
462favorite. Clicking on the star icon again, unstars the change.
463
464image::images/user-review-ui-change-screen-star.png[width=800, link="images/user-review-ui-change-screen-star.png"]
465
466Starring a change turns on email notifications for this change.
467
468Starred changed are listed under `My` > `Starred Changes`.
469and can be queried by the link:user-search.html#is[is:starred] search
470operator.
471
Edwin Kempin8ab5b532014-05-05 17:10:31 +0200472[[related-changes]]
473=== Related Changes
474
475If there are changes that are related to the currently viewed change
476they are displayed in the third column of the change screen.
477
478There are several lists of related changes and a tab control is used to
479display each list of related changes in its own tab.
480
481The following tabs may be displayed:
482
483[[related-changes-tab]]
484- `Related Changes`:
485+
486This tab page shows changes on which the current change depends
487(ancestors) and open changes that depend on the current change
488(descendants). For merge commits it also shows the closed changes that
489will be merged into the destination branch by submitting the merge
490commit.
491+
492The changes are sorted in the same way as the output of 'git log'. This
493means the relationship between the changes can be inferred from the
494position of the changes in the list. Changes listed above the current
495change are descendants; changes below the current change are ancestors.
496+
Edwin Kempin68cfe472014-05-12 15:10:25 +0200497For merged changes this tab is only shown if there are open
498descendants.
Edwin Kempin8ab5b532014-05-05 17:10:31 +0200499+
500image::images/user-review-ui-change-screen-related-changes.png[width=800, link="images/user-review-ui-change-screen-related-changes.png"]
501+
502Related changes may be decorated with an icon to signify dependencies
503on outdated patch sets, or commits that are not associated to changes
504under review:
505+
506** Orange Dot:
507+
508The selected patch set of the change is outdated; it is not the current
509patch set of the change.
510+
511If an ancestor change is marked with an orange dot it means that the
512currently viewed patch set depends on a outdated patch set of the
513ancestor change. This is because a new patch set for the ancestor
514change was uploaded in the meantime and as result the currently viewed
515patch set now needs to be rebased.
516+
517If a descendant change is marked with an orange dot it means that an
518old patch set of the descendant change depends on the currently viewed
519patch set. It may be that the descendant was rebased in the meantime
520and with the new patch set this dependency was removed.
521
522** Green Tilde:
523+
524The selected patch set of the change is an indirect descendant of the
525currently viewed patch set; it has a dependency to another patch set of
526this change. E.g. this could mean that a new patch set was uploaded for
527this change and the descendant change now needs to be rebased. Please
528note that following the link to an indirect descendant change may
529result in a completely different related changes listing.
530
531** Black Dot:
532+
533Indicates a merged ancestor, e.g. the commit was directly pushed into
534the repository bypassing code review, or the ancestor change was
535reviewed and submitted on another branch. The latter may indicate that
536the user has accidentally pushed the commit to the wrong branch, e.g.
537the commit was done on `branch-a`, but was then pushed to
538`refs/for/branch-b`.
539
540+
541image::images/user-review-ui-change-screen-related-changes-indicators.png[width=800, link="images/user-review-ui-change-screen-related-changes-indicators.png"]
542
543- `Conflicts With`:
544+
545This tab page shows changes that conflict with the current change.
546Non-mergeable changes are filtered out; only conflicting changes that
547are mergeable are shown.
548+
549If this change is merged, its conflicting changes will have merge
550conflicts and must be rebased. The rebase of the other changes with the
551conflict resolution must then be done manually.
552+
553image::images/user-review-ui-change-screen-conflicts-with.png[width=800, link="images/user-review-ui-change-screen-conflicts-with.png"]
554
555- `Same Topic`:
556+
557This tab page shows changes that have the same topic as the current
558change. Only open changes are included in the list.
559+
560image::images/user-review-ui-change-screen-same-topic.png[width=800, link="images/user-review-ui-change-screen-same-topic.png"]
561
562- `Cherry-Picks`:
563+
564This tab page shows changes with the same link:user-changeid.html[
565Change-Id] for the current project.
566+
567Abandoned changes are filtered out.
568+
569For each change in this list the destination branch is shown as a
570prefix in front of the change subject.
571+
572image::images/user-review-ui-change-screen-cherry-picks.png[width=800, link="images/user-review-ui-change-screen-cherry-picks.png"]
573
574If there are no related changes for a tab, the tab is not displayed.
575
Edwin Kempinc6cab612014-05-06 11:09:05 +0200576[[reply]]
577=== Reply
578
579The `Reply...` button in the change header allows to reply to the
580currently viewed patch set; one can add a summary comment, publish
581inline draft comments, and vote on the labels.
582
583image::images/user-review-ui-change-screen-reply.png[width=800, link="images/user-review-ui-change-screen-reply.png"]
584
585Clicking on the `Reply...` button opens a popup panel.
586
587A text box allows to type a summary comment for the currently viewed
588patch set.
589
590If the current patch set is viewed, radio buttons are displayed for
591each label on which the user is allowed to vote. Voting on non-current
592patch sets is not possible.
593
594Typing "LGTM" (acronym for 'Looks Good To Me') in the summary comment
595text box automatically selects the highest possible score for the
596'Code-Review' label.
597
598The inline draft comments that will be published are displayed in a
599separate section so that they can be reviewed before publishing. There
600are links to navigate to the inline comments which can be used if a
601comment needs to be edited.
602
603The `Post` button publishes the comments and the votes.
604
605The `send email` checkbox controls whether the reply should trigger
606email notifications for other users. Deselecting the checkbox means
607that there will be no email notification about the change update to the
608change author, the reviewers or any other user.
609
610image::images/user-review-ui-change-screen-replying.png[width=800, link="images/user-review-ui-change-screen-replying.png"]
611
612If a user can approve a label that is still required, a quick approve
613button appears in the change header that allows to add this missing
614approval by a single click. The quick approve button only appears if
615there is a single label that is still required and can be approved by
616the user.
617
618E.g. if a change requires approvals on the 'Code-Review' and the
619'Verified' labels, and there is already a '+1 Verified' vote, then
620if the user is allowed to vote the max score on 'Code-Review', a
621`Code-Review+2` quick approve button appears that approves the
622'Code-Review' label if clicked.
623
624Using the quick approve button also publishes all inline draft
625comments; a summary comment is only added if the reply popup panel is
626open when the quick approve button is clicked.
627
628image::images/user-review-ui-change-screen-quick-approve.png[width=800, link="images/user-review-ui-change-screen-quick-approve.png"]
629
Edwin Kempin7a682812014-05-06 14:45:01 +0200630[[history]]
631=== History
632
633The history of the change can be seen in the lower part of the screen.
634
635The history contains messages for all kinds of change updates, e.g. a
636message is added when a new patch set is uploaded or when a review was
637done.
638
639Messages with new comments from other users, that were published after
640the current user last reviewed this change, are automatically expanded.
641
642image::images/user-review-ui-change-screen-history.png[width=800, link="images/user-review-ui-change-screen-history.png"]
643
644It is possible to directly reply to a change message by clicking on the
645reply icon in the right upper corner of a change message. This opens
646the reply popup panel and prefills the text box with the quoted comment.
647Then the reply can be written below the quoted comment or inserted
648inline. Lines starting with " > " will be rendered as a block quote.
649Please note that for a correct rendering it is important to leave a blank
650line between a quoted block and the reply to it.
651
652image::images/user-review-ui-change-screen-reply-to-comment.png[width=800, link="images/user-review-ui-change-screen-reply-to-comment.png"]
653
654Inline comments are directly displayed in the change history and there
655are links to navigate to the inline comments.
656
657image::images/user-review-ui-change-screen-inline-comments.png[width=800, link="images/user-review-ui-change-screen-inline-comments.png"]
658
659The `Expand All` button expands all messages; the `Collapse All` button
660collapses all messages.
661
Edwin Kempin772418f2014-05-06 15:45:35 +0200662[[update-notification]]
663=== Update Notification
664
665The change screen automatically polls for updates to the currently
666viewed change. If there is an update the user is informed by a popup
667panel in the bottom right corner.
668
669The polling frequency depends on the server configuration; by default
670it is 30 seconds. Polling may also be completely disabled by the
671administrator.
672
673image::images/user-review-ui-change-screen-change-update.png[width=800, link="images/user-review-ui-change-screen-change-update.png"]
674
Edwin Kempin41d9d302014-05-06 16:02:06 +0200675[[plugin-extensions]]
676=== Plugin Extensions
677
678Gerrit plugins may extend the change screen; they can add buttons for
679additional actions to the change info block and display arbitrary UI
680controls below the change info block.
681
682image::images/user-review-ui-change-screen-plugin-extensions.png[width=800, link="images/user-review-ui-change-screen-plugin-extensions.png"]
683
Edwin Kempinae57e182014-04-30 13:38:55 +0200684[[old-change-screen]]
685=== Old Change Screen
686
687In addition to the normal change screen, this Gerrit version still
688includes the old change screen that was used in earlier Gerrit
689versions. Users that want to continue using the old change screen can
690configure it in their preferences under
691`Settings` > `Preferences` > `Change View`:
692
693image::images/user-review-ui-change-view-preference.png[width=800, link="images/user-review-ui-change-view-preference.png"]
694
695[WARNING]
696The old change screen will be removed in a later version of Gerrit.
697
Edwin Kempind38ddf52014-05-07 14:31:42 +0200698[[side-by-side]]
699== Side-by-Side Diff Screen
700
701The side-by-side diff screen shows a single patch; the old file version
702is displayed on the left side of the screen; the new file version is
703displayed on the right side of the screen.
704
705This screen allows to review a patch and to comment on it.
706
707image::images/user-review-ui-side-by-side-diff-screen.png[width=800, link="images/user-review-ui-side-by-side-diff-screen.png"]
708
709In the screen header the project name and the name of the viewed patch
710file are shown.
711
712If a Git web browser is configured on the server, the project name and
713the file path are displayed as links to the project and the folder in
714the Git web browser.
715
716image::images/user-review-ui-side-by-side-diff-screen-project-and-file.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-project-and-file.png"]
717
718The checkbox in front of the project name and the file name allows the
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200719patch to be marked as reviewed. The link:#mark-reviewed[Mark Reviewed]
720diff preference allows to control whether the files should be
721automatically marked as reviewed when they are viewed.
Edwin Kempind38ddf52014-05-07 14:31:42 +0200722
723image::images/user-review-ui-side-by-side-diff-screen-reviewed.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-reviewed.png"]
724
Edwin Kempind38ddf52014-05-07 14:31:42 +0200725The scrollbar shows patch diffs and inline comments as annotations.
726This provides a good overview of the lines in the patch that are
727relevant for reviewing. By clicking on an annotation one can quickly
728navigate to the corresponding line in the patch.
729
730image::images/user-review-ui-side-by-side-diff-screen-scrollbar.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-scrollbar.png"]
731
Edwin Kempin1266ac8f2014-05-09 09:39:31 +0200732A gap between lines in the file content that is caused by aligning the
733left and right side or by displaying inline comments is shown as a
734vertical red bar in the line number column. This prevents a gap from
735being mistaken for blank lines in the file
736
737image::images/user-review-ui-side-by-side-diff-screen-red-bar.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-red-bar.png"]
738
Edwin Kempind8057e52014-05-08 13:52:32 +0200739[[patch-set-selection]]
740In the header, on each side, the list of patch sets is shown. Clicking
741on a patch set changes the selection for the patch set comparison and
742the screen is refreshed to show the diff between the selected patch
743sets. The currently selected patch set is highlighted by a light blue
744background.
745
746On the left side `Base` can be selected to compare a patch set against
747its base. For merge commits `Auto Merge` is available instead which
748allows to compare the patch against the result of the auto merge. The
749auto merge version may contain Git conflict markers and is useful for
750reviewing how conflicts are resolved by a patch.
751
752Reviewers that are reviewing a patch for the first time look at its
753diff against its base; reviewers that have reviewed an old patch
754version before, may see what has changed since that version by
755comparing the old patch against the current patch.
756
757image::images/user-review-ui-side-by-side-diff-screen-patch-sets.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-patch-sets.png"]
758
Edwin Kempin01280cc2014-05-09 09:53:30 +0200759If the compared patches are identical, this is highlighted by a red
760`No Differences` label in the screen header.
761
762image::images/user-review-ui-side-by-side-diff-screen-no-differences.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-no-differences.png"]
763
Edwin Kempind8057e52014-05-08 13:52:32 +0200764The download icon next to the patch set list allows to download the
765patch. Unless the mime type of the file is configured as safe, the
766download file is a zip archive that contains the patch file.
767
Edwin Kempind37a1342014-05-08 14:02:35 +0200768For navigating between the patches in a patch set there are navigation
769buttons on the right side of the screen header. The left arrow button
770navigates to the previous patch; the right arrow button navigates to
771the next patch. The arrow up button leads back to the change screen. In
772all cases the selection for the patch set comparison is kept.
773
774image::images/user-review-ui-side-by-side-diff-screen-navigation.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-navigation.png"]
775
Edwin Kempin004c3472014-05-07 16:56:59 +0200776[[inline-comments]]
777=== Inline Comments
778
779Inline comments are displayed directly in the patch file under the code
780that is commented. Inline comments can be placed on lines or on code
781blocks.
782
783If an inline comment relates to a code block, this code block is
784highlighted by a yellow background.
785
786Code blocks with comments may overlap. This means it is possible to
787attach several comments to the same code.
788
789The lines of the patch file are linkable. To link to a certain line in
790the patch file, '@<line-number>' must be appended to the patch link,
791e.g. `http://host:8080/#/c/56857/2/Documentation/user-review-ui.txt@665`.
792To link to a line in the old file version, '@a<line-number>' must be
793appended to the patch link. These links can be used to directly link to
794certain inline comments.
795
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200796If the diff preference link:#expand-all-comments[Expand All Comments]
797is set to `Expand`, all inline comments will be automatically expanded.
Edwin Kempin004c3472014-05-07 16:56:59 +0200798
799image::images/user-review-ui-side-by-side-diff-screen-inline-comments.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-inline-comments.png"]
800
801In the header of the comment box, the name of the comment author and
802the timestamp of the comment are shown. If avatars are configured on
803the server, the avatar image of the comment author is displayed in the
804top left corner. Below the actual comment there are buttons to reply to
805the comment.
806
807image::images/user-review-ui-side-by-side-diff-screen-comment-box.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-comment-box.png"]
808
809Clicking on the `Reply` button opens an editor to type the reply.
810
811Quoting is supported, but only by manually copying & pasting the old
812comment that should be quoted and prefixing every line by " > ". Please
813note that for a correct rendering it is important to leave a blank line
814between a quoted block and the reply to it.
815
816Clicking on the `Save` button saves the comment as a draft. To make it
817visible to other users it must be published from the change screen by
818link:#reply[replying] to the change.
819
820The `Cancel` button cancels the editing and discards any changes to the
821draft comment.
822
823Clicking on the `Discard` button deletes the inline draft comment.
824
825image::images/user-review-ui-side-by-side-diff-screen-comment-reply.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-comment-reply.png"]
826
827Draft comments are marked by the text "Draft" in the header in the
828place of the comment author.
829
830A draft comment can be edited by clicking on the `Edit` button, or
831deleted by clicking on the `Discard` button.
832
833image::images/user-review-ui-side-by-side-diff-screen-comment-edit.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-comment-edit.png"]
834
835Clicking on the `Done` button is a quick way to reply with "Done" to a
836comment. This is used to mark a comment as addressed by a follow-up
837patch set.
838
Edwin Kempin44606652014-05-09 08:31:05 +0200839image::images/user-review-ui-side-by-side-diff-screen-replied-done.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-replied-done.png"]
Edwin Kempin004c3472014-05-07 16:56:59 +0200840
841[[add-inline-comment]]
842To add a new inline comment there are several possibilities:
843
844- select a code block and press 'c'
845- select a code block and click on the popup comment icon
Edwin Kempin7feeb952014-05-09 11:16:56 +0200846- go to a line, by clicking on it or by link:#key-navigation[key
847 navigation], and press 'c'
Edwin Kempin004c3472014-05-07 16:56:59 +0200848- click on a line number
849
850There are many ways to select code for commenting on it. The most
851frequently used methods are:
852
853- by mouse:
854** click and drag with the mouse to select a block
855** double-click on a word to select it
856** double-click and drag with the mouse to select a code block word-wise
857** triple-click on a line to select it
858** triple-click and drag with the mouse to select a code block line-wise
859
860- by keys (the same keys that are used for visual selection in Vim):
861** press 'v' + arrow keys (or 'h', 'j', 'k', 'l') to select a block
862** press 'V' + arrow keys (or 'j', 'k') to select a code block line-wise
863** type 'bvw' to select a word
864
Edwin Kempin004c3472014-05-07 16:56:59 +0200865image::images/user-review-ui-side-by-side-diff-screen-comment.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-comment.png"]
866
867For typing the new comment, a new comment box is shown under the code
868that is commented.
869
870Clicking on the `Save` button saves the new comment as a draft. To make
871it visible to other users it must be published from the change screen
872by link:#reply[replying] to the change.
873
874Clicking on the `Discard` button deletes the new comment.
875
876image::images/user-review-ui-side-by-side-diff-screen-commented.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-commented.png"]
877
Edwin Kempin9df27ac2014-05-08 13:06:18 +0200878[[file-level-comments]]
879=== File Level Comments
880
881Comments that apply to a whole file can be added on file level.
882
883File level comments are added by clicking on the comment icon in the
884header above the file.
885
886image::images/user-review-ui-side-by-side-diff-screen-file-level-comment.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-file-level-comment.png"]
887
888Clicking on the comment icon opens a comment box for typing the file
889level comment.
890
891image::images/user-review-ui-side-by-side-diff-screen-file-level-commented.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-file-level-commented.png"]
892
Edwin Kempin6113a1f2014-05-09 10:48:34 +0200893[[search]]
894=== Search
895
896For searching within a patch file, a Vim-like search is supported.
897Typing `/` opens the search box. Typing in the search box immediately
898highlights matches in the patch file with a yellow background. Using
899JavaScript regular expressions in the search term is supported. The
900search is case insensitive. After confirming the search by `ENTER` one
901can navigate between the matches by `n` / `N` to go to the next /
902previous match. Skipped lines are automatically expanded if they
903contain a match and one navigates to it.
904
905For additional possibilities to search please check the
906link:http://www.vim.org/docs.php[Vim documentation]. There are other
907useful ways to search, e.g. while the cursor is on a word, pressing `*`
908or `#` searches for the next or previous occurrence of the word.
909
910Searching by `Ctrl-F` finds matches only in the visible area of the
911screen unless the link:#render[Render] diff preference is set to `Slow`.
912
913image::images/user-review-ui-side-by-side-diff-screen-search.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-search.png"]
914
Edwin Kempin7feeb952014-05-09 11:16:56 +0200915[[key-navigation]]
916=== Key Navigation
917
918Vim-like commands can be used to navigate within a patch file:
919
920- `h` / `j` / `k` / `l` moves the cursor left / down / up / right
921- `0` / `$` moves the cursor to the start / end of the line
922- `gg` / `G` moves to cursor to the start / end of the file
923- `Ctrl-D` / `Ctrl-U` scolls downwards / upwards
924
925Please check the link:http://www.vim.org/docs.php[Vim documentation]
926for further information.
927
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200928[[diff-preferences]]
929=== Diff Preferences
930
931There are several options to control how patch diffs should be
932rendered. Users can configure their preferences in the diff
933preferences. The diff preferences can be accessed by clicking on the
934settings icon in the screen header.
935
936image::images/user-review-ui-side-by-side-diff-screen-preferences.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-preferences.png"]
937
938The diff preferences popup allows to change the diff preferences.
939By clicking on the `Save` button changes to the diff preferences are
940saved permanently. Clicking on the `Apply` button applies the new
941diff preferences to the current screen, but they are discarded when the
942screen is refreshed. The `Save` button is only available if the user is
943signed in.
944
945image::images/user-review-ui-side-by-side-diff-screen-preferences-popup.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-preferences-popup.png"]
946
947The following diff preferences can be configured:
948
949- `Theme`:
950+
951Controls the theme that is used to render the file content.
952+
953E.g. users could choose to work with a dark theme.
954+
955image::images/user-review-ui-side-by-side-diff-screen-dark-theme.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-dark-theme.png"]
956
957- `Ignore Whitespace`:
958+
959Controls whether differences in whitespace should be ignored or not.
960+
961** `None`:
962+
963All differences in whitespace are highlighted.
964+
965** `At Line End`:
966+
967Whitespace differences at the end of lines are ignored.
968+
969** `Leading, At Line End`:
970+
971Whitespace differences at the beginning and end of lines are ignored.
972+
973** `All`:
974+
975All differences in whitespace are ignored.
976
977- `Tab Width`:
978+
979Controls how many spaces should be displayed for a tab.
980
981- `Columns`:
982+
983Sets the preferred line length. At this position a vertical dashed line
984is displayed so that one can easily detect lines the exceed the
985preferred line length.
986+
987image::images/user-review-ui-side-by-side-diff-screen-column.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-column.png"]
988
989- `Lines Of Context`:
990+
991The number of context lines that should be displayed before and after
992any diff. If the `entire file` checkbox is selected, the full file is
993rendered.
994+
995Skipped common lines can be expanded by clicking on the placeholder for
996the skipped lines.
997+
998Clicking on "... skipped <n> common lines ..." expands the complete
999block of skipped lines.
1000+
1001If many lines are skipped there are additional links to expand the
1002context by ten lines before and after the skipped block.
1003+
1004image::images/user-review-ui-side-by-side-diff-screen-expand-skipped-lines.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-expand-skipped-lines.png"]
1005
1006- `Intraline Difference`:
1007+
1008Controls whether intraline differences should be highlighted.
1009+
1010image::images/user-review-ui-side-by-side-diff-screen-intraline-difference.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-intraline-difference.png"]
1011
1012- `Syntax Highlighting`:
1013+
1014Controls whether syntax highlighting should be enabled.
1015+
1016The language for the syntax highlighting is automatically detected from
Edwin Kempin637db5e2014-05-12 08:25:26 +02001017the file extension. The language can also be set manually by selecting
1018it from the `Language` drop-down list.
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001019+
1020image::images/user-review-ui-side-by-side-diff-screen-syntax-coloring.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-syntax-coloring.png"]
1021
1022- `Whitespace Errors`:
1023+
1024Controls whether whitespace errors are highlighted.
1025
1026- `Show Tabs`:
1027+
1028Controls whether tabs are highlighted.
1029
1030- `Line Numbers`:
1031+
1032Controls whether line numbers are shown.
1033
David Ostrovskya64d6892014-05-01 21:55:00 +02001034- `Empty Pane`:
1035+
1036Controls whether empty panes are shown or not. The Left pane is empty when a
1037file was added; the right pane is empty when a file was deleted.
1038
Edwin Kempin91de46f2014-05-12 08:28:32 +02001039- `Left Side`:
1040+
David Ostrovskya000b232014-05-13 07:47:06 +02001041Controls whether the left side is shown. This preference is not
1042persistent and is ignored by the `Save` button. Every time a
1043patch diff is opened, this preference is reset to `Show`.
Edwin Kempin91de46f2014-05-12 08:28:32 +02001044
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001045- `Top Menu`:
1046+
1047Controls whether the top menu is shown.
1048
1049[[mark-reviewed]]
1050- `Mark Reviewed`:
1051+
1052Controls whether the files of the patch set should be automatically
1053marked as reviewed when they are viewed.
1054
1055[[expand-all-comments]]
1056- `Expand All Comments`:
1057+
1058Controls whether all comments should be automatically expanded.
1059
1060- `Render`:
1061+
1062Controls how patch files that exceed the screen size are rendered.
1063+
1064If `Fast` is selected file contents which are outside of the visible
1065area are not attached to the browser's DOM tree. This makes the
1066rendering fast, but searching by `Ctrl+F` only finds content which is
1067in the visible area.
1068+
1069If `Slow` is selected all file contents are attached to the browser's
1070DOM tree, which makes the rendering slow for large files. The advantage
1071of this setting is that `Ctrl+F` can be used to search in the complete
1072file.
Edwin Kempin9cc22c92014-05-12 08:16:52 +02001073+
1074Large files that exceed 4000 lines will not be fully rendered.
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001075
Edwin Kempin7a85f412014-05-09 12:51:51 +02001076[[keyboard-shortcuts]]
1077== Keyboard Shortcuts
1078
1079Navigation within the review UI can be completely done by keys, and
1080most actions can be controlled by keyboard shortcuts. Typing `?` opens
1081a popup that shows a list of available keyboard shortcuts:
1082
1083- Change Screen
1084+
1085image::images/user-review-ui-change-screen-keyboard-shortcuts.png[width=800, link="images/user-review-ui-change-screen-keyboard-shortcuts.png"]
1086
1087- Side-by-Side Diff Screen
1088+
1089image::images/user-review-ui-side-by-side-diff-screen-keyboard-shortcuts.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-keyboard-shortcuts.png"]
1090+
1091In addition, Vim-like commands can be used to link:#key-navigation[
1092navigate] and link:#search[search] within a patch file.
1093
Edwin Kempinb7a1c7c2014-05-09 11:21:18 +02001094[[new-vs-old]]
1095== New Review UI vs. Old Review UI
1096
1097There are some important conceptual differences between the old and
1098new review UIs:
1099
1100- The old change screen directly shows all patch sets of the change.
1101 With the new change screen only a single patch set is displayed;
1102 users can switch between the patch sets by choosing another patch
1103 set from the link:#patch-sets[Patch Sets] drop down panel in the
1104 screen header.
1105- On the old side-by-side diff screen, new comments are inserted by
1106 double-clicking on a line. With the new side-by-side diff screen
1107 double-click is used to select a word for commenting on it; there
1108 are link:#add-inline-comment[several ways to insert new comments],
1109 e.g. by selecting a code block and clicking on the popup comment
1110 icon.
1111
1112Limitations of the new review UI:
1113
1114- The new side-by-side diff screen cannot render images.
1115
Edwin Kempin1b4c2cac2014-05-12 14:16:29 +02001116- Unified diff view is missing:
1117+
1118By setting `Diff View (New Change Screen)` in the user preferences to
1119`Unified Diff` the new change screen can be configured to open the file
1120diffs in the old unified diff view.
1121
Edwin Kempinb7a1c7c2014-05-09 11:21:18 +02001122Users preferring the old review UI can link:#old-change-screen[
1123configure the change view] in their preferences.
1124
Edwin Kempin4fd84c92014-04-30 13:23:15 +02001125GERRIT
1126------
1127Part of link:index.html[Gerrit Code Review]
1128
1129SEARCHBOX
1130---------