blob: 1c3967d6d0d70b4a04b6da7dd8432ea8b7c5b65e [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
Edwin Kempinc6cab612014-05-06 11:09:05 +0200605image::images/user-review-ui-change-screen-replying.png[width=800, link="images/user-review-ui-change-screen-replying.png"]
606
607If a user can approve a label that is still required, a quick approve
608button appears in the change header that allows to add this missing
609approval by a single click. The quick approve button only appears if
610there is a single label that is still required and can be approved by
611the user.
612
613E.g. if a change requires approvals on the 'Code-Review' and the
614'Verified' labels, and there is already a '+1 Verified' vote, then
615if the user is allowed to vote the max score on 'Code-Review', a
616`Code-Review+2` quick approve button appears that approves the
617'Code-Review' label if clicked.
618
619Using the quick approve button also publishes all inline draft
620comments; a summary comment is only added if the reply popup panel is
621open when the quick approve button is clicked.
622
623image::images/user-review-ui-change-screen-quick-approve.png[width=800, link="images/user-review-ui-change-screen-quick-approve.png"]
624
Edwin Kempin7a682812014-05-06 14:45:01 +0200625[[history]]
626=== History
627
628The history of the change can be seen in the lower part of the screen.
629
630The history contains messages for all kinds of change updates, e.g. a
631message is added when a new patch set is uploaded or when a review was
632done.
633
634Messages with new comments from other users, that were published after
635the current user last reviewed this change, are automatically expanded.
636
637image::images/user-review-ui-change-screen-history.png[width=800, link="images/user-review-ui-change-screen-history.png"]
638
639It is possible to directly reply to a change message by clicking on the
640reply icon in the right upper corner of a change message. This opens
641the reply popup panel and prefills the text box with the quoted comment.
642Then the reply can be written below the quoted comment or inserted
643inline. Lines starting with " > " will be rendered as a block quote.
644Please note that for a correct rendering it is important to leave a blank
645line between a quoted block and the reply to it.
646
647image::images/user-review-ui-change-screen-reply-to-comment.png[width=800, link="images/user-review-ui-change-screen-reply-to-comment.png"]
648
649Inline comments are directly displayed in the change history and there
650are links to navigate to the inline comments.
651
652image::images/user-review-ui-change-screen-inline-comments.png[width=800, link="images/user-review-ui-change-screen-inline-comments.png"]
653
654The `Expand All` button expands all messages; the `Collapse All` button
655collapses all messages.
656
Edwin Kempin772418f2014-05-06 15:45:35 +0200657[[update-notification]]
658=== Update Notification
659
660The change screen automatically polls for updates to the currently
661viewed change. If there is an update the user is informed by a popup
662panel in the bottom right corner.
663
664The polling frequency depends on the server configuration; by default
665it is 30 seconds. Polling may also be completely disabled by the
666administrator.
667
668image::images/user-review-ui-change-screen-change-update.png[width=800, link="images/user-review-ui-change-screen-change-update.png"]
669
Edwin Kempin41d9d302014-05-06 16:02:06 +0200670[[plugin-extensions]]
671=== Plugin Extensions
672
673Gerrit plugins may extend the change screen; they can add buttons for
674additional actions to the change info block and display arbitrary UI
675controls below the change info block.
676
677image::images/user-review-ui-change-screen-plugin-extensions.png[width=800, link="images/user-review-ui-change-screen-plugin-extensions.png"]
678
Edwin Kempinae57e182014-04-30 13:38:55 +0200679[[old-change-screen]]
680=== Old Change Screen
681
682In addition to the normal change screen, this Gerrit version still
683includes the old change screen that was used in earlier Gerrit
684versions. Users that want to continue using the old change screen can
685configure it in their preferences under
686`Settings` > `Preferences` > `Change View`:
687
688image::images/user-review-ui-change-view-preference.png[width=800, link="images/user-review-ui-change-view-preference.png"]
689
690[WARNING]
691The old change screen will be removed in a later version of Gerrit.
692
Edwin Kempind38ddf52014-05-07 14:31:42 +0200693[[side-by-side]]
694== Side-by-Side Diff Screen
695
696The side-by-side diff screen shows a single patch; the old file version
697is displayed on the left side of the screen; the new file version is
698displayed on the right side of the screen.
699
700This screen allows to review a patch and to comment on it.
701
702image::images/user-review-ui-side-by-side-diff-screen.png[width=800, link="images/user-review-ui-side-by-side-diff-screen.png"]
703
704In the screen header the project name and the name of the viewed patch
705file are shown.
706
707If a Git web browser is configured on the server, the project name and
708the file path are displayed as links to the project and the folder in
709the Git web browser.
710
711image::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"]
712
713The checkbox in front of the project name and the file name allows the
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200714patch to be marked as reviewed. The link:#mark-reviewed[Mark Reviewed]
715diff preference allows to control whether the files should be
716automatically marked as reviewed when they are viewed.
Edwin Kempind38ddf52014-05-07 14:31:42 +0200717
718image::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"]
719
Edwin Kempind38ddf52014-05-07 14:31:42 +0200720The scrollbar shows patch diffs and inline comments as annotations.
721This provides a good overview of the lines in the patch that are
722relevant for reviewing. By clicking on an annotation one can quickly
723navigate to the corresponding line in the patch.
724
725image::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"]
726
Edwin Kempin1266ac8f2014-05-09 09:39:31 +0200727A gap between lines in the file content that is caused by aligning the
728left and right side or by displaying inline comments is shown as a
729vertical red bar in the line number column. This prevents a gap from
730being mistaken for blank lines in the file
731
732image::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"]
733
Edwin Kempind8057e52014-05-08 13:52:32 +0200734[[patch-set-selection]]
735In the header, on each side, the list of patch sets is shown. Clicking
736on a patch set changes the selection for the patch set comparison and
737the screen is refreshed to show the diff between the selected patch
738sets. The currently selected patch set is highlighted by a light blue
739background.
740
741On the left side `Base` can be selected to compare a patch set against
742its base. For merge commits `Auto Merge` is available instead which
743allows to compare the patch against the result of the auto merge. The
744auto merge version may contain Git conflict markers and is useful for
745reviewing how conflicts are resolved by a patch.
746
747Reviewers that are reviewing a patch for the first time look at its
748diff against its base; reviewers that have reviewed an old patch
749version before, may see what has changed since that version by
750comparing the old patch against the current patch.
751
752image::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"]
753
Edwin Kempin6db9bcd2014-06-06 09:32:05 +0200754The download icon next to the patch set list allows to download the
755patch. Unless the mime type of the file is configured as safe, the
756download file is a zip archive that contains the patch file.
757
Edwin Kempin01280cc2014-05-09 09:53:30 +0200758If the compared patches are identical, this is highlighted by a red
759`No Differences` label in the screen header.
760
761image::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"]
762
Edwin Kempinafb4fcc2014-06-06 09:52:52 +0200763If a file was renamed, the old and new file paths are shown in the
764header together with a similarity index that shows how much of the file
765content is unmodified.
766
767image::images/user-review-ui-side-by-side-diff-screen-rename.png[width=800, link="images/user-review-ui-side-by-side-diff-screen-rename.png"]
Edwin Kempind8057e52014-05-08 13:52:32 +0200768
Edwin Kempind37a1342014-05-08 14:02:35 +0200769For navigating between the patches in a patch set there are navigation
770buttons on the right side of the screen header. The left arrow button
771navigates to the previous patch; the right arrow button navigates to
772the next patch. The arrow up button leads back to the change screen. In
773all cases the selection for the patch set comparison is kept.
774
775image::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"]
776
Edwin Kempin004c3472014-05-07 16:56:59 +0200777[[inline-comments]]
778=== Inline Comments
779
780Inline comments are displayed directly in the patch file under the code
781that is commented. Inline comments can be placed on lines or on code
782blocks.
783
784If an inline comment relates to a code block, this code block is
785highlighted by a yellow background.
786
787Code blocks with comments may overlap. This means it is possible to
788attach several comments to the same code.
789
790The lines of the patch file are linkable. To link to a certain line in
791the patch file, '@<line-number>' must be appended to the patch link,
792e.g. `http://host:8080/#/c/56857/2/Documentation/user-review-ui.txt@665`.
793To link to a line in the old file version, '@a<line-number>' must be
794appended to the patch link. These links can be used to directly link to
795certain inline comments.
796
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200797If the diff preference link:#expand-all-comments[Expand All Comments]
798is set to `Expand`, all inline comments will be automatically expanded.
Edwin Kempin004c3472014-05-07 16:56:59 +0200799
800image::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"]
801
802In the header of the comment box, the name of the comment author and
803the timestamp of the comment are shown. If avatars are configured on
804the server, the avatar image of the comment author is displayed in the
805top left corner. Below the actual comment there are buttons to reply to
806the comment.
807
808image::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"]
809
810Clicking on the `Reply` button opens an editor to type the reply.
811
812Quoting is supported, but only by manually copying & pasting the old
813comment that should be quoted and prefixing every line by " > ". Please
814note that for a correct rendering it is important to leave a blank line
815between a quoted block and the reply to it.
816
817Clicking on the `Save` button saves the comment as a draft. To make it
818visible to other users it must be published from the change screen by
819link:#reply[replying] to the change.
820
821The `Cancel` button cancels the editing and discards any changes to the
822draft comment.
823
824Clicking on the `Discard` button deletes the inline draft comment.
825
826image::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"]
827
828Draft comments are marked by the text "Draft" in the header in the
829place of the comment author.
830
831A draft comment can be edited by clicking on the `Edit` button, or
832deleted by clicking on the `Discard` button.
833
834image::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"]
835
836Clicking on the `Done` button is a quick way to reply with "Done" to a
837comment. This is used to mark a comment as addressed by a follow-up
838patch set.
839
Edwin Kempin44606652014-05-09 08:31:05 +0200840image::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 +0200841
842[[add-inline-comment]]
843To add a new inline comment there are several possibilities:
844
845- select a code block and press 'c'
846- select a code block and click on the popup comment icon
Edwin Kempin7feeb952014-05-09 11:16:56 +0200847- go to a line, by clicking on it or by link:#key-navigation[key
848 navigation], and press 'c'
Edwin Kempin004c3472014-05-07 16:56:59 +0200849- click on a line number
850
851There are many ways to select code for commenting on it. The most
852frequently used methods are:
853
854- by mouse:
855** click and drag with the mouse to select a block
856** double-click on a word to select it
857** double-click and drag with the mouse to select a code block word-wise
858** triple-click on a line to select it
859** triple-click and drag with the mouse to select a code block line-wise
860
861- by keys (the same keys that are used for visual selection in Vim):
862** press 'v' + arrow keys (or 'h', 'j', 'k', 'l') to select a block
863** press 'V' + arrow keys (or 'j', 'k') to select a code block line-wise
864** type 'bvw' to select a word
865
Edwin Kempin004c3472014-05-07 16:56:59 +0200866image::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"]
867
868For typing the new comment, a new comment box is shown under the code
869that is commented.
870
871Clicking on the `Save` button saves the new comment as a draft. To make
872it visible to other users it must be published from the change screen
873by link:#reply[replying] to the change.
874
875Clicking on the `Discard` button deletes the new comment.
876
877image::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"]
878
Edwin Kempin9df27ac2014-05-08 13:06:18 +0200879[[file-level-comments]]
880=== File Level Comments
881
882Comments that apply to a whole file can be added on file level.
883
884File level comments are added by clicking on the comment icon in the
885header above the file.
886
887image::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"]
888
889Clicking on the comment icon opens a comment box for typing the file
890level comment.
891
892image::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"]
893
Edwin Kempin6113a1f2014-05-09 10:48:34 +0200894[[search]]
895=== Search
896
897For searching within a patch file, a Vim-like search is supported.
898Typing `/` opens the search box. Typing in the search box immediately
899highlights matches in the patch file with a yellow background. Using
900JavaScript regular expressions in the search term is supported. The
901search is case insensitive. After confirming the search by `ENTER` one
902can navigate between the matches by `n` / `N` to go to the next /
903previous match. Skipped lines are automatically expanded if they
904contain a match and one navigates to it.
905
906For additional possibilities to search please check the
907link:http://www.vim.org/docs.php[Vim documentation]. There are other
908useful ways to search, e.g. while the cursor is on a word, pressing `*`
909or `#` searches for the next or previous occurrence of the word.
910
911Searching by `Ctrl-F` finds matches only in the visible area of the
912screen unless the link:#render[Render] diff preference is set to `Slow`.
913
914image::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"]
915
Edwin Kempin7feeb952014-05-09 11:16:56 +0200916[[key-navigation]]
917=== Key Navigation
918
919Vim-like commands can be used to navigate within a patch file:
920
921- `h` / `j` / `k` / `l` moves the cursor left / down / up / right
922- `0` / `$` moves the cursor to the start / end of the line
923- `gg` / `G` moves to cursor to the start / end of the file
924- `Ctrl-D` / `Ctrl-U` scolls downwards / upwards
925
926Please check the link:http://www.vim.org/docs.php[Vim documentation]
927for further information.
928
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +0200929[[diff-preferences]]
930=== Diff Preferences
931
932There are several options to control how patch diffs should be
933rendered. Users can configure their preferences in the diff
934preferences. The diff preferences can be accessed by clicking on the
935settings icon in the screen header.
936
937image::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"]
938
939The diff preferences popup allows to change the diff preferences.
940By clicking on the `Save` button changes to the diff preferences are
941saved permanently. Clicking on the `Apply` button applies the new
942diff preferences to the current screen, but they are discarded when the
943screen is refreshed. The `Save` button is only available if the user is
944signed in.
945
946image::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"]
947
948The following diff preferences can be configured:
949
950- `Theme`:
951+
952Controls the theme that is used to render the file content.
953+
954E.g. users could choose to work with a dark theme.
955+
956image::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"]
957
958- `Ignore Whitespace`:
959+
960Controls whether differences in whitespace should be ignored or not.
961+
962** `None`:
963+
964All differences in whitespace are highlighted.
965+
966** `At Line End`:
967+
968Whitespace differences at the end of lines are ignored.
969+
970** `Leading, At Line End`:
971+
972Whitespace differences at the beginning and end of lines are ignored.
973+
974** `All`:
975+
976All differences in whitespace are ignored.
977
978- `Tab Width`:
979+
980Controls how many spaces should be displayed for a tab.
981
982- `Columns`:
983+
984Sets the preferred line length. At this position a vertical dashed line
985is displayed so that one can easily detect lines the exceed the
986preferred line length.
987+
988image::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"]
989
990- `Lines Of Context`:
991+
992The number of context lines that should be displayed before and after
993any diff. If the `entire file` checkbox is selected, the full file is
994rendered.
995+
996Skipped common lines can be expanded by clicking on the placeholder for
997the skipped lines.
998+
999Clicking on "... skipped <n> common lines ..." expands the complete
1000block of skipped lines.
1001+
1002If many lines are skipped there are additional links to expand the
1003context by ten lines before and after the skipped block.
1004+
1005image::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"]
1006
1007- `Intraline Difference`:
1008+
1009Controls whether intraline differences should be highlighted.
1010+
1011image::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"]
1012
1013- `Syntax Highlighting`:
1014+
1015Controls whether syntax highlighting should be enabled.
1016+
1017The language for the syntax highlighting is automatically detected from
Edwin Kempin637db5e2014-05-12 08:25:26 +02001018the file extension. The language can also be set manually by selecting
1019it from the `Language` drop-down list.
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001020+
1021image::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"]
1022
1023- `Whitespace Errors`:
1024+
1025Controls whether whitespace errors are highlighted.
1026
1027- `Show Tabs`:
1028+
1029Controls whether tabs are highlighted.
1030
1031- `Line Numbers`:
1032+
1033Controls whether line numbers are shown.
1034
David Ostrovskya64d6892014-05-01 21:55:00 +02001035- `Empty Pane`:
1036+
1037Controls whether empty panes are shown or not. The Left pane is empty when a
1038file was added; the right pane is empty when a file was deleted.
1039
Edwin Kempin91de46f2014-05-12 08:28:32 +02001040- `Left Side`:
1041+
David Ostrovskya000b232014-05-13 07:47:06 +02001042Controls whether the left side is shown. This preference is not
1043persistent and is ignored by the `Save` button. Every time a
1044patch diff is opened, this preference is reset to `Show`.
Edwin Kempin91de46f2014-05-12 08:28:32 +02001045
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001046- `Top Menu`:
1047+
1048Controls whether the top menu is shown.
1049
1050[[mark-reviewed]]
1051- `Mark Reviewed`:
1052+
1053Controls whether the files of the patch set should be automatically
1054marked as reviewed when they are viewed.
1055
1056[[expand-all-comments]]
1057- `Expand All Comments`:
1058+
1059Controls whether all comments should be automatically expanded.
1060
1061- `Render`:
1062+
1063Controls how patch files that exceed the screen size are rendered.
1064+
1065If `Fast` is selected file contents which are outside of the visible
1066area are not attached to the browser's DOM tree. This makes the
1067rendering fast, but searching by `Ctrl+F` only finds content which is
1068in the visible area.
1069+
1070If `Slow` is selected all file contents are attached to the browser's
1071DOM tree, which makes the rendering slow for large files. The advantage
1072of this setting is that `Ctrl+F` can be used to search in the complete
1073file.
Edwin Kempin9cc22c92014-05-12 08:16:52 +02001074+
1075Large files that exceed 4000 lines will not be fully rendered.
Edwin Kempinfe8ca4c2014-05-08 16:49:15 +02001076
Edwin Kempin7a85f412014-05-09 12:51:51 +02001077[[keyboard-shortcuts]]
1078== Keyboard Shortcuts
1079
1080Navigation within the review UI can be completely done by keys, and
1081most actions can be controlled by keyboard shortcuts. Typing `?` opens
1082a popup that shows a list of available keyboard shortcuts:
1083
1084- Change Screen
1085+
1086image::images/user-review-ui-change-screen-keyboard-shortcuts.png[width=800, link="images/user-review-ui-change-screen-keyboard-shortcuts.png"]
1087
1088- Side-by-Side Diff Screen
1089+
1090image::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"]
1091+
1092In addition, Vim-like commands can be used to link:#key-navigation[
1093navigate] and link:#search[search] within a patch file.
1094
Edwin Kempinb7a1c7c2014-05-09 11:21:18 +02001095[[new-vs-old]]
1096== New Review UI vs. Old Review UI
1097
1098There are some important conceptual differences between the old and
1099new review UIs:
1100
1101- The old change screen directly shows all patch sets of the change.
1102 With the new change screen only a single patch set is displayed;
1103 users can switch between the patch sets by choosing another patch
1104 set from the link:#patch-sets[Patch Sets] drop down panel in the
1105 screen header.
1106- On the old side-by-side diff screen, new comments are inserted by
1107 double-clicking on a line. With the new side-by-side diff screen
1108 double-click is used to select a word for commenting on it; there
1109 are link:#add-inline-comment[several ways to insert new comments],
1110 e.g. by selecting a code block and clicking on the popup comment
1111 icon.
1112
1113Limitations of the new review UI:
1114
1115- The new side-by-side diff screen cannot render images.
1116
Edwin Kempin1b4c2cac2014-05-12 14:16:29 +02001117- Unified diff view is missing:
1118+
1119By setting `Diff View (New Change Screen)` in the user preferences to
1120`Unified Diff` the new change screen can be configured to open the file
1121diffs in the old unified diff view.
1122
Edwin Kempinb7a1c7c2014-05-09 11:21:18 +02001123Users preferring the old review UI can link:#old-change-screen[
1124configure the change view] in their preferences.
1125
Edwin Kempin4fd84c92014-04-30 13:23:15 +02001126GERRIT
1127------
1128Part of link:index.html[Gerrit Code Review]
1129
1130SEARCHBOX
1131---------