|  | :linkattrs: | 
|  | = Review UI Overview | 
|  |  | 
|  | Reviewing changes is an important task and the Gerrit Web UI provides | 
|  | many functionalities to make the review process comfortable and | 
|  | efficient. | 
|  |  | 
|  | [[change-screen]] | 
|  | == Change Screen | 
|  |  | 
|  | The change screen is the main view for a change. It shows the details of a | 
|  | single change and allows various actions on it. | 
|  |  | 
|  | image::images/user-review-ui-change-screen.png[width=800, link="images/user-review-ui-change-screen.png"] | 
|  |  | 
|  | Here are the main areas of the screen | 
|  |  | 
|  | image::images/user-review-ui-change-screen-annotated.png[width=800, link="images/user-review-ui-change-screen-annotated.png"] | 
|  |  | 
|  |  | 
|  | === Top info | 
|  |  | 
|  | Top left, you find the status of the change, and a permalink. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-topleft.png[width=600, link="images/user-review-ui-change-screen-topleft.png"] | 
|  |  | 
|  | [[change-status]] | 
|  | The change status shows the state of the change: | 
|  |  | 
|  | - `Active`: | 
|  | + | 
|  | The change is under active review. | 
|  |  | 
|  | - `Merge Conflict`: | 
|  | + | 
|  | The change can't be merged into the destination branch due to conflicts. | 
|  |  | 
|  | - `Ready to Submit`: | 
|  | + | 
|  | The change has all necessary approvals and fulfils all other submit | 
|  | requirements. It can be submitted. | 
|  |  | 
|  | - `Merged`: | 
|  | + | 
|  | The change was successfully merged into the destination branch. | 
|  |  | 
|  | - `Abandoned`: | 
|  | + | 
|  | The change was abandoned. It is not intended to be updated, reviewed or | 
|  | submitted anymore. | 
|  |  | 
|  | - `Private`: | 
|  | + | 
|  | The change is marked as link:intro-user.html#private-changes[Private]. And has | 
|  | reduced visibility. | 
|  |  | 
|  | - `Revert Created|Revert Submitted`: | 
|  | + | 
|  | The change has a corresponding revert change. Revert changes can be created | 
|  | through UI (see <<actions, Actions section>>). | 
|  |  | 
|  | - `WIP`: | 
|  | + | 
|  | The change was marked as "Work in Progress". For example to indicate to | 
|  | reviewers that they shouldn't review the change yet. | 
|  |  | 
|  | [[star]] | 
|  | === Star Change | 
|  |  | 
|  | Clicking the star icon bookmarks the change: it turns on | 
|  | email notifications for this change, and the change is added to the | 
|  | list under `Your` > `Starred Changes`. They can be queried by the | 
|  | link:user-search.html#is[is:starred] search operator. | 
|  |  | 
|  | [[quick-links]] | 
|  | === Links Menu | 
|  |  | 
|  | Links menu contains various change related strings for quick copying. Such as: | 
|  | Change Number, URL, Title+Url, etc. The lines in this menu can also be accessed | 
|  | via shortcuts for convenience. | 
|  |  | 
|  | image::images/user-review-ui-copy-links.png[width=600, link="images/user-review-ui-copy-links.png"] | 
|  |  | 
|  | [[change-info]] | 
|  | === Change metadata | 
|  |  | 
|  | The change metadata block contains detailed information about the change. | 
|  |  | 
|  | image::images/user-review-ui-change-metadata.png[width=600, link="images/user-review-ui-change-metadata.png"] | 
|  |  | 
|  | - [[owner]]Owner/Uploader/Author/Committer: | 
|  | + | 
|  | Owner is the person who created the change | 
|  | + | 
|  | Uploader is the person who uploaded the latest patchset (the patchset that will | 
|  | be merged if the change is submitted) | 
|  | + | 
|  | Author/Committer are concepts from Git and are retrieved from the commit when | 
|  | it's sent for review. | 
|  |  | 
|  | - [[reviewers]]Reviewers: | 
|  | + | 
|  | The reviewers of the change are displayed as chips. | 
|  | + | 
|  | For each reviewer there is a tooltip that shows on which labels the | 
|  | reviewer is allowed to vote. | 
|  | + | 
|  | New reviewers can be added through reply dialog that is opened by clicking on | 
|  | the pencil icon or on "Reply" button. Typing into the reviewer text field | 
|  | activates auto completion of user and group names. | 
|  | + | 
|  |  | 
|  | - [[cc-list]]CC: | 
|  | + | 
|  | Accounts in CC receive notifications for the updates on the change, but don't | 
|  | need to vote/review. If the CC'ed user votes they are moved to reviewers. | 
|  | + | 
|  |  | 
|  | - [[attention-set]]link:user-attention-set.html[Attention set]: | 
|  | + | 
|  | Users in attention set are marked by "chevron" symbol (see screenshot above). | 
|  | The mark indicates that there are actions their attention is required on the | 
|  | change: Something updated/changed since last review, their vote is required, | 
|  | etc. | 
|  | + | 
|  | Changes for which you are currently in attention set can be found using | 
|  | `attention:<User>` in search and show up in a separate category of personal | 
|  | dashboard. | 
|  | + | 
|  | Clicking on the mark removes the user from attention set. | 
|  |  | 
|  |  | 
|  | [[remove-reviewer]] | 
|  | Reviewers can be removed from the change by selecting the appropriate option on | 
|  | the chip's hovercard. Removing a reviewer also removes current votes of the | 
|  | reviewer. The removal of votes is recorded in the change log. | 
|  |  | 
|  | Removing reviewers is protected by permissions: | 
|  |  | 
|  | ** Users can always remove themselves. | 
|  | ** The change owner may remove any zero or positive score. | 
|  | ** Users with the link:access-control.html#category_remove_reviewer[ | 
|  | Remove Reviewer] access right, the branch owner, the project owner | 
|  | and Gerrit administrators may remove anyone. | 
|  |  | 
|  | - [[repo-branch-topic]]Project (Repo) / Branch / Topic: | 
|  | + | 
|  | The name of the project for which the change was done is displayed as a | 
|  | link to the link:user-dashboards.html#project-default-dashboard[default | 
|  | dashboard] of the project. If no default dashboard is defined, the link | 
|  | opens a list of open changes on the project. | 
|  | + | 
|  | The name of the destination branch is displayed as a link to a list | 
|  | with all changes on this branch that have the same status as the | 
|  | currently viewed change. | 
|  | + | 
|  | If a topic was assigned to the change it is displayed below the branch. | 
|  | By clicking on the edit icon the topic can be set. This requires the | 
|  | link:access-control.html#category_edit_topic_name[Edit Topic Name] | 
|  | access right. To be able to set a topic on a closed change, the | 
|  | `Edit Topic Name` must be assigned with the `force` flag. | 
|  |  | 
|  | - [[parent]]Parent: | 
|  | + | 
|  | Parent commit of the latest uploaded patchset. Or if the change has been merged | 
|  | the parent of the commit it was merged as into the destination branch. | 
|  |  | 
|  | - [[merged-as]]Merged As: | 
|  | + | 
|  | The SHA of the commit corresponding to the merged change on the destination | 
|  | branch. | 
|  |  | 
|  | - [[revert-created-as]]Revert (Created|Submitted) As: | 
|  | + | 
|  | Points to the revert change, if one was created. | 
|  |  | 
|  | - [[cherry-pick-of]]Cherry-pick of: | 
|  | + | 
|  | If the change was created as cherry-pick of some other change to a different | 
|  | branch, points to the original change. | 
|  |  | 
|  | - [[submit-strategy]]Submit Strategy: | 
|  | + | 
|  | The link:project-setup.html#submit_type[submit strategy] that will be | 
|  | used to submit the change. The submit strategy is only displayed for | 
|  | open changes. | 
|  |  | 
|  | - [[hastags]]Hashtags: | 
|  | + | 
|  | Arbitrary string hashtags, that can be used to categorize changes and later use | 
|  | hashtags for search queries. | 
|  |  | 
|  | [[submit-requirements]] | 
|  | === Submit Requirements | 
|  |  | 
|  | image::images/user-review-ui-submit-requirements.png[width=600, link="images/user-review-ui-copy-links.png"] | 
|  |  | 
|  | Submit Requirements describe various conditions that must be fulfilled before | 
|  | the change can be submitted. Hovering over the requirement will show the | 
|  | description of the requirement, as well as additional information, such as: | 
|  | corresponding expression that is being evaluated, who can vote on the related | 
|  | labels etc. | 
|  |  | 
|  | Approving votes are colored green; negative votes are colored red. | 
|  |  | 
|  | For more detail on Submit Requirements see | 
|  | link:config-submit-requirements.html[Submit Requirement Configuration] page. | 
|  |  | 
|  | [[actions]] | 
|  | === Actions | 
|  | Actions buttons are at the top right and in the overflow menu. | 
|  | Depending on the change state and the permissions of the user, different | 
|  | actions are available on the change: | 
|  |  | 
|  | ** [[submit]]`Submit`: | 
|  | + | 
|  | Submits the change and adds it to the merge queue. If possible the | 
|  | change is merged into the destination branch. | 
|  | + | 
|  | The `Submit` button is available if the change is submittable and | 
|  | the link:access-control.html#category_submit[Submit] access right is | 
|  | assigned. | 
|  |  | 
|  | ** [[revert]]`Revert`: | 
|  | + | 
|  | Reverts the change via creating a new one. | 
|  | + | 
|  | The `Revert` button is available if the change has been submitted. | 
|  | + | 
|  | When the `Revert` button is pressed, a panel will appear to allow | 
|  | the user to enter a commit message for the reverting change. | 
|  | + | 
|  | Once a revert change is created, the original author and any reviewers | 
|  | of the original change are added as reviewers and a message is posted | 
|  | to the original change linking to the revert. | 
|  |  | 
|  | ** [[abandon]]`Abandon`: | 
|  | + | 
|  | Abandons the change. | 
|  | + | 
|  | The `Abandon` button is only available if the change is open and the | 
|  | link:access-control.html#category_abandon[Abandon] access right is | 
|  | assigned. | 
|  | + | 
|  | When a change is abandoned, a panel appears that allows one to type a | 
|  | comment message to explain why the change is being abandoned. | 
|  |  | 
|  | ** [[restore]]`Restore`: | 
|  | + | 
|  | Restores the change. | 
|  | + | 
|  | The `Restore` button is only available if the change is abandoned and | 
|  | the link:access-control.html#category_abandon[Abandon] and the | 
|  | link:access-control.html#category_push[Push] access right is | 
|  | assigned. | 
|  | + | 
|  | When a change is restored, a panel appears that allows one to type a | 
|  | comment message to explain why the change is being restored. | 
|  |  | 
|  | ** [[rebase]]`Rebase`: | 
|  | + | 
|  | Rebases the change. The rebase is always done with content merge | 
|  | enabled. If the rebase is successful a new patch set with the rebased | 
|  | commit is created. If the rebase fails, there are conflicts that have | 
|  | to be resolved manually. | 
|  | + | 
|  | If the change does not depend on another open change, it is rebased | 
|  | onto the tip of the destination branch. | 
|  | + | 
|  | If the change depends on another open change, it is rebased onto the | 
|  | current patch set of that other change. | 
|  | + | 
|  | It is possible to change parent revision of a change. The new parent | 
|  | revision can be another change towards the same target branch, or | 
|  | the tip of the target branch. | 
|  | + | 
|  | The `Rebase` button is only available if | 
|  | the link:access-control.html#category_rebase[Rebase] access right is | 
|  | assigned. Rebasing merge commits is not supported. | 
|  |  | 
|  | ** [[cherry-pick]]`Cherry-Pick`: | 
|  | + | 
|  | Allows to cherry-pick the change to another branch. The destination | 
|  | branch can be selected from a dialog. Cherry-picking a change creates a | 
|  | new open change on the selected destination branch. | 
|  | + | 
|  | It is also possible to cherry-pick a change to the same branch. This is | 
|  | effectively the same as rebasing it to the current tip of the | 
|  | destination branch. This can be used to remove dependencies on other | 
|  | open changes. | 
|  | + | 
|  | Users can only cherry-pick changes to branches for which they are | 
|  | allowed to upload changes for review. | 
|  |  | 
|  | ** [[delete]]`Delete Change` / `Delete Revision`: | 
|  | + | 
|  | Deletes the change. | 
|  | + | 
|  | For open or abandoned changes, the `Delete Change` button will be available | 
|  | and if the user is the change owner and is granted the | 
|  | link:access-control.html#category_delete_own_changes[Delete Own Changes] | 
|  | permission, if they are granted the | 
|  | link:access-control.html#category_delete_changes[Delete Changes] permission, | 
|  | or if they are an administrator. | 
|  |  | 
|  | ** [[plugin-actions]]Further actions may be available if plugins are installed. | 
|  |  | 
|  | + | 
|  | image::images/user-review-ui-change-screen-change-info-actions.png[width=400, link="images/user-review-ui-change-screen-change-info-actions.png"] | 
|  |  | 
|  | [[files-tab]] | 
|  | === File List | 
|  |  | 
|  | The file list shows the files that are modified in the currently viewed | 
|  | patch set. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-file-list.png[width=800, link="images/user-review-ui-change-screen-file-list.png"] | 
|  |  | 
|  | [[magic-files]] | 
|  | In addition to the modified files the file list contains magic files | 
|  | that are generated by Gerrit and which don't exist in the repository. | 
|  | The magic files contain additional commit data that should be | 
|  | reviewable and allow users to comment on this data. The magic files are | 
|  | always listed first. The following magic files exist: | 
|  |  | 
|  | * `Commit Message`: | 
|  | + | 
|  | The commit message and headers with the parent commit(s), the author | 
|  | information and the committer information. | 
|  |  | 
|  | * `Merge List` (for merge commits only): | 
|  | + | 
|  | The list of commits that are being integrated into the destination | 
|  | branch by submitting the merge commit. | 
|  |  | 
|  | Every file is accompanied by a number of extra information, such as status | 
|  | (modified, added, deleted, etc.), number of changed lines, type (executable, | 
|  | link, plain), comments and others. Hovering over most icons and columns reveals | 
|  | additional information. | 
|  |  | 
|  | Each file can be expanded to view the contents of the file and diff. For more | 
|  | information see <<diff-view, Diff View>> section. | 
|  |  | 
|  | [[comments-tab]] | 
|  | === Comments Tab | 
|  |  | 
|  | Instead of the file list, a comments tab can be selected. Comments tab presents | 
|  | comments along with related file/diff snippets. It also offers some filtering | 
|  | opportunities at the top (ex. only unresolved, only comments from user X, etc.) | 
|  |  | 
|  | image::images/user-review-ui-change-screen-comments-tab.png[width=800, link="images/user-review-ui-change-screen-comments-tab.png"] | 
|  |  | 
|  | [[checks-tab]] | 
|  | === Checks Tab | 
|  | Checks tab contains results of different "Check Runs" installed by plugins. For | 
|  | more information see link:pg-plugin-checks-api.html[Checks API] page. | 
|  |  | 
|  | [[patch-sets]] | 
|  | === Patch Sets | 
|  |  | 
|  | The change screen only presents one pair of patch sets (`Patchset A` and | 
|  | `Patchset B`) at a time. `A` is always an earlier upload than `B` and serves as | 
|  | a base for diffing when viewing changes in the files. Which patch | 
|  | sets is currently viewed can be seen from the `Patch Sets` drop-down | 
|  | panel in the change header. If patchset 'A' is not selected a parent commit of | 
|  | patchset 'B' is used by default. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-patch-sets.png[width=300, link="images/user-review-ui-change-screen-patch-sets.png"] | 
|  |  | 
|  | [[download]] | 
|  | === Download | 
|  |  | 
|  | The `Download` drop-down panel in the change header offers commands and | 
|  | links for downloading the currently viewed patch set. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-download-commands.png[width=800, link="images/user-review-ui-change-screen-download-commands.png"] | 
|  |  | 
|  | The available download commands depend on the installed Gerrit plugins. | 
|  | The most popular plugin for download commands, the | 
|  | link:https://gerrit-review.googlesource.com/admin/repos/plugins/download-commands[ | 
|  | download-commands,role=external,window=_blank] plugin, provides commands to checkout, pull and | 
|  | cherry-pick a patch set. | 
|  |  | 
|  | Each command has a copy-to-clipboard icon that allows the command to be | 
|  | copied into the clipboard. This makes it easy to paste and execute the | 
|  | command on a Git command line. Additionally each line can copied to clipboard | 
|  | using number (1..9) of the appropriate line as a keyboard shortcut. | 
|  |  | 
|  | If several download schemes are configured on the server (e.g. SSH and | 
|  | HTTP) there is a drop-down list to switch between the download schemes. | 
|  | Gerrit automatically remembers the download scheme that was last chosen | 
|  | and selects this download scheme the next time the download commands | 
|  | drop-down panel is opened. | 
|  |  | 
|  | The `Patch-File` links provide the Git patch file for the currently | 
|  | viewed patch set for download. The patch file can be base64 encoded or | 
|  | zipped. | 
|  |  | 
|  | The `Archive` links allow one to download an archive with the contents | 
|  | of the currently viewed patch set. The archive is offered in several | 
|  | formats (e.g. tar and tbz2); which formats are available depends on the | 
|  | configuration of the server. | 
|  |  | 
|  | [[included-in]] | 
|  | === Included In | 
|  |  | 
|  | For merged changes the `Included In` drop-down panel is available | 
|  | through the overflow menu at the top. It shows the branches and tags | 
|  | in which the change is included. E.g. if a change fixes a bug, this | 
|  | shows which released versions contain the bug-fix (assuming that every | 
|  | release is tagged). | 
|  |  | 
|  | image::images/user-review-ui-change-screen-included-in.png[width=800, link="images/user-review-ui-change-screen-included-in.png"] | 
|  |  | 
|  | [[related-changes]] | 
|  | === Related Changes | 
|  |  | 
|  | If there are changes that are related to the currently viewed change | 
|  | they are displayed in the third column of the change screen. | 
|  |  | 
|  | There are several lists of related changes that are displayed in separate | 
|  | sectionsunder each other. | 
|  |  | 
|  | The following sections may be displayed: | 
|  |  | 
|  | - [[related-changes-section]]`Related Changes`: | 
|  | + | 
|  | This section shows changes on which the current change depends | 
|  | (ancestors) and open changes that depend on the current change | 
|  | (descendants). For merge commits it also shows the closed changes that | 
|  | will be merged into the destination branch by submitting the merge | 
|  | commit. | 
|  | + | 
|  | The changes are sorted in the same way as the output of 'git log'. This | 
|  | means the relationship between the changes can be inferred from the | 
|  | position of the changes in the list. Changes listed above the current | 
|  | change are descendants; changes below the current change are ancestors. | 
|  | + | 
|  | For merged changes this tab is only shown if there are open | 
|  | descendants. | 
|  | + | 
|  | Related changes may be annotated with dependencies | 
|  | on outdated patch sets, or commits that are not associated to changes | 
|  | under review: | 
|  | + | 
|  | ** [[not-current]]Not current: | 
|  | + | 
|  | The patch set of the related change which is related to the current change is | 
|  | outdated; it is not the current patch set of the change. | 
|  | + | 
|  | For ancestor it means that the | 
|  | currently viewed patch set depends on a outdated patch set of the | 
|  | ancestor change. This is because a new patch set for the ancestor | 
|  | change was uploaded in the meantime and as result the currently viewed | 
|  | patch set now needs to be rebased. | 
|  | + | 
|  | If a descendant change is marked "not current" it means that an | 
|  | old patch set of the descendant change depends on the currently viewed | 
|  | patch set. It may be that the descendant was rebased in the meantime | 
|  | and with the new patch set this dependency was removed. | 
|  |  | 
|  | ** [[indirect-descendant]]Indirect descendant: | 
|  | + | 
|  | The selected patch set of the change is an indirect descendant of the | 
|  | currently viewed patch set; it has a dependency to another patch set of | 
|  | this change. E.g. this could mean that a new patch set was uploaded for | 
|  | this change and the descendant change now needs to be rebased. Please | 
|  | note that following the link to an indirect descendant change may | 
|  | result in a completely different related changes listing. | 
|  |  | 
|  | ** [[merged-related-change]]Merged | 
|  | + | 
|  | The change has been  merged. | 
|  | + | 
|  | If the relationship to submitted change falls under conditions described in | 
|  | <<not-current, Not current>> the status is orange. Such changes can appear as | 
|  | both ancestors and descendants of the change. | 
|  |  | 
|  | ** [[submittable-related-change]]Submittable | 
|  | + | 
|  | All the submit requirements are fulfilled for the related change and it can be | 
|  | submitted when all of its ancestors are submitted. | 
|  |  | 
|  | ** [[closed-ancestor-abandoned]]Abandoned: | 
|  | + | 
|  | Indicates an abandoned change. | 
|  |  | 
|  | - [[conflicts-with]]`Merge Conflicts`: | 
|  | + | 
|  | This section shows changes that conflict with the current change. | 
|  | Non-mergeable changes are filtered out; only conflicting changes that | 
|  | are mergeable are shown. | 
|  | + | 
|  | If this change is merged, its conflicting changes will have merge | 
|  | conflicts and must be rebased. The rebase of the other changes with the | 
|  | conflict resolution must then be done manually. | 
|  |  | 
|  | - [[submitted-together]]`Submitted Together`: | 
|  | + | 
|  | This section shows changes that will be submitted together with the | 
|  | currently viewed change, when clicking the submit button. It includes | 
|  | ancestors of the current patch set. | 
|  | + | 
|  | If `change.submitWholeTopic` is enabled this section also includes changes with | 
|  | the same topic. The list recursively includes all changes that can be reached by | 
|  | ancestor and topic relationships. Only open changes are included in the result. | 
|  |  | 
|  | - [[cherry-picks]]`Cherry-Picks`: | 
|  | + | 
|  | This section shows changes with the same link:user-changeid.html[ | 
|  | Change-Id] for the current project. | 
|  | + | 
|  | Abandoned changes are filtered out. | 
|  | + | 
|  | For each change in this list the destination branch is shown as a | 
|  | prefix in front of the change subject. | 
|  | + | 
|  |  | 
|  | If there are no related changes for a tab, the tab is not displayed. | 
|  |  | 
|  | - [[same-topic]]`Same Topic`: | 
|  | + | 
|  | This section shows changes which are part of the same topic. If | 
|  | `change.submitWholeTopic` is enabled, then this section is omitted and changes | 
|  | are included as part of <<submitted-together, `Submitted Together`>> | 
|  |  | 
|  | [[reply]] | 
|  | === Reply | 
|  |  | 
|  | The `Reply...` button in the change header allows to reply to the | 
|  | currently viewed patch set; one can add a summary comment, publish | 
|  | inline draft comments, vote on the labels and adjust attention set. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-reply.png[width=800, link="images/user-review-ui-change-screen-reply.png"] | 
|  |  | 
|  | Clicking on the `Reply...` button opens a popup panel. | 
|  |  | 
|  | [[summary-comment]] | 
|  | A text box allows to type a summary comment for the currently viewed | 
|  | patch set. Markdown syntax is supported same as in other | 
|  | <<comments-markdown, Comments>>. | 
|  |  | 
|  | [[vote]] | 
|  | If the current patch set is viewed, buttons are displayed for | 
|  | each label on which the user is allowed to vote. Voting on non-current | 
|  | patch sets is not possible. | 
|  |  | 
|  | The inline draft comments that will be published are displayed in a | 
|  | separate section so that they can be reviewed before publishing. There | 
|  | are links to navigate to the inline comments which can be used if a | 
|  | comment needs to be edited. | 
|  |  | 
|  | The `SEND` button publishes the comments and the votes. | 
|  |  | 
|  | [[quick-approve]] | 
|  | If a user can approve a label that is still required, a quick approve | 
|  | button appears in the change header that allows to add this missing | 
|  | approval by a single click. The quick approve button only appears if | 
|  | there is a single label that is still required and can be approved by | 
|  | the user. | 
|  |  | 
|  | E.g. if a change requires approvals on the 'Code-Review' and the | 
|  | 'Verified' labels, and there is already a '+1 Verified' vote, then | 
|  | if the user is allowed to vote the max score on 'Code-Review', a | 
|  | `Code-Review+2` quick approve button appears that approves the | 
|  | 'Code-Review' label if clicked. | 
|  |  | 
|  | Using the quick approve button also publishes all inline draft | 
|  | comments; a summary comment is only added if the reply popup panel is | 
|  | open when the quick approve button is clicked. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-quick-approve.png[width=800, link="images/user-review-ui-change-screen-quick-approve.png"] | 
|  |  | 
|  | [[change-log]] | 
|  | === Change Log | 
|  |  | 
|  | The history of the change can be seen in the lower part of the screen. | 
|  |  | 
|  | The log contains messages for all kinds of change updates, e.g. a | 
|  | message is added when a new patch set is uploaded or when a review was | 
|  | done. | 
|  |  | 
|  | [[update-notification]] | 
|  | === Update Notification | 
|  |  | 
|  | The change screen automatically polls for updates to the currently | 
|  | viewed change. If there is an update the user is informed by a popup | 
|  | panel in the bottom right corner. | 
|  |  | 
|  | The polling frequency depends on the server configuration; by default | 
|  | it is 30 seconds. Polling may also be completely disabled by the | 
|  | administrator. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-change-update.png[width=400, link="images/user-review-ui-change-screen-change-update.png"] | 
|  |  | 
|  | [[plugin-extensions]] | 
|  | === Plugin Extensions | 
|  |  | 
|  | Gerrit plugins may extend the change screen. Java plugins in the | 
|  | backend can add additional actions to the triple-dot menu block. | 
|  | Frontend plugins can change the UI controls in arbitrary ways. | 
|  |  | 
|  | image::images/user-review-ui-change-screen-plugin-extensions.png[width=300, link="images/user-review-ui-change-screen-plugin-extensions.png"] | 
|  |  | 
|  | [[diff-view]] | 
|  | == Side-by-Side Diff Screen | 
|  |  | 
|  | The side-by-side diff screen shows a single patch (or difference between two | 
|  | patchsets); the old file version is displayed on the left side of the screen; | 
|  | the new file version is displayed on the right side of the screen. | 
|  |  | 
|  | This screen allows to review a patch and to comment on it. | 
|  |  | 
|  | image::images/user-review-ui-side-by-side-diff-screen.png[width=800, link="images/user-review-ui-side-by-side-diff-screen.png"] | 
|  |  | 
|  |  | 
|  | [[side-by-side-mark-reviewed]] | 
|  | The checkbox in front of the file name allows the | 
|  | patch to be marked as reviewed. The link:#mark-reviewed[Mark Reviewed] | 
|  | diff preference allows to control whether the files should be | 
|  | automatically marked as reviewed when they are viewed. | 
|  |  | 
|  | image::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"] | 
|  |  | 
|  | [[patch-set-selection]] | 
|  | In the header, on each side, the list of patch sets is shown. Clicking | 
|  | on a patch set changes the selection for the patch set comparison and | 
|  | the screen is refreshed to show the diff between the selected patch | 
|  | sets. The currently selected patch set is highlighted by a light blue | 
|  | background. | 
|  |  | 
|  | On the left side `Base` can be selected to compare a patch set against | 
|  | its base. For merge commits `Auto Merge` is available instead which | 
|  | allows to compare the patch against the result of the auto merge. The | 
|  | auto merge version may contain Git conflict markers and is useful for | 
|  | reviewing how conflicts are resolved by a patch. | 
|  |  | 
|  | Reviewers that are reviewing a patch for the first time look at its | 
|  | diff against its base; reviewers that have reviewed an old patch | 
|  | version before, may see what has changed since that version by | 
|  | comparing the old patch against the current patch. | 
|  |  | 
|  | image::images/user-review-ui-side-by-side-diff-screen-patch-sets.png[width=400, link="images/user-review-ui-side-by-side-diff-screen-patch-sets.png"] | 
|  |  | 
|  | [[download-file]] | 
|  | The download icon next to the patch set list allows to download the | 
|  | patch. Unless the mime type of the file is configured as safe, the | 
|  | download file is a zip archive that contains the patch file. | 
|  |  | 
|  |  | 
|  | [[side-by-side-rename]] | 
|  | If a file was renamed, the old and new file paths are shown in the | 
|  | header together with a similarity index that shows how much of the file | 
|  | content is unmodified. | 
|  |  | 
|  | image::images/user-review-ui-side-by-side-diff-screen-rename.png[width=400, link="images/user-review-ui-side-by-side-diff-screen-rename.png"] | 
|  |  | 
|  | [[inline-comments]] | 
|  | === Inline Comments | 
|  |  | 
|  | Inline comments are displayed directly in the patch file under the code | 
|  | that is commented. Inline comments can be placed on lines or on code | 
|  | blocks. | 
|  |  | 
|  | If an inline comment relates to a code block, this code block is | 
|  | highlighted by a yellow background. | 
|  |  | 
|  | Code blocks with comments may overlap. This means it is possible to | 
|  | attach several comments to the same code. | 
|  |  | 
|  | [[comments-markdown]] | 
|  | The comments support markdown. It follows the CommonMark spec, except inline | 
|  | images and direct HTML are not rendered and kept as plaintext. | 
|  |  | 
|  | [[line-links]] | 
|  | The lines of the patch file are linkable: simply append | 
|  | '#<linenumber>' to the URL, or click on the line-number. This not only | 
|  | opens a draft comment box, but also sets the URL fragment. | 
|  |  | 
|  | [[reply-inline-comment]] | 
|  | Clicking on the `Reply` button opens an editor to type the reply. | 
|  |  | 
|  | Previous comment can be quoted using "Quote" button. A new draft would be open | 
|  | on the same comment thread with the text of the previoused comment quoted using | 
|  | markdown syntax. | 
|  |  | 
|  | image::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"] | 
|  |  | 
|  | Comments are first saved as drafts, and you can revisit the drafts as | 
|  | you read through code review. Finally, they will be published by | 
|  | clicking the "Reply". | 
|  |  | 
|  | [[done]] | 
|  | Comments can be unresolved (something should be changed) or resolved | 
|  | (informational). If you have addressed an unresolved comment in a next | 
|  | patchset, you can quickly resolve the comment by clicking "Done" (if it was | 
|  | resolved in a next patchset) or "Ack" (if you acknowledge the comment, | 
|  | but don't want to make changes). | 
|  |  | 
|  | image::images/user-review-ui-side-by-side-diff-screen-replied-done.png[width=400, link="images/user-review-ui-side-by-side-diff-screen-replied-done.png"] | 
|  |  | 
|  | [[add-inline-comment]] | 
|  | To add a new inline comment there are several possibilities: | 
|  |  | 
|  | - select a code block and press 'c' | 
|  | - go to a line, by clicking on it or by link:#key-navigation[key | 
|  | navigation], and press 'c' | 
|  | - click on a line number | 
|  |  | 
|  | There are many ways to select code for commenting on it. The most | 
|  | frequently used methods are: | 
|  |  | 
|  | - by mouse: | 
|  | ** click and drag with the mouse to select a block | 
|  | ** double-click on a word to select it | 
|  | ** double-click and drag with the mouse to select a code block word-wise | 
|  | ** triple-click on a line to select it | 
|  | ** triple-click and drag with the mouse to select a code block line-wise | 
|  |  | 
|  | For typing the new comment, a new comment box is shown under the code | 
|  | that is commented. | 
|  |  | 
|  | Clicking on the `Save` button saves the new comment as a draft. To | 
|  | make it visible to other users it must be published from the change | 
|  | screen by link:#reply[replying] to the change. | 
|  |  | 
|  | [[suggest-fix]] | 
|  | === Suggest fix (WIP) | 
|  | Comments can contain suggested fixes. | 
|  |  | 
|  | Clicking "Suggest Fix" will insert a special code-block in the text of the | 
|  | comment. The contents of this code block will replace the lines the comment is | 
|  | attached to (what gets highlighted when hovering over comment). | 
|  |  | 
|  | image::images/user-review-ui-suggest-fix.png[width=400, link="images/user-review-ui-suggest-fix.png"] | 
|  |  | 
|  | The author of the change can then preview and apply the change. This will created | 
|  | a new patchset with changes applied. | 
|  |  | 
|  | image::images/user-review-ui-apply-fix.png[width=800, link="images/user-review-ui-apply-fix.png"] | 
|  |  | 
|  | [[file-level-comments]] | 
|  | === File Level Comments | 
|  |  | 
|  | File level comments are added by clicking the 'File' header at the top | 
|  | of the file. | 
|  |  | 
|  | image::images/user-review-ui-side-by-side-diff-screen-file-level-comment.png[width=400, link="images/user-review-ui-side-by-side-diff-screen-file-level-comment.png"] | 
|  |  | 
|  | [[diff-preferences]] | 
|  | === Diff Preferences | 
|  |  | 
|  | There are several options to control how patch diffs should be | 
|  | rendered. Users can configure their preferences in the diff | 
|  | preferences. The diff preferences can be accessed by clicking on the | 
|  | settings icon in the screen header. | 
|  |  | 
|  | image::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"] | 
|  |  | 
|  | The following diff preferences can be configured: | 
|  |  | 
|  | - [[ignore-whitespace]]`Ignore Whitespace`: | 
|  | + | 
|  | Controls whether differences in whitespace should be ignored or not. | 
|  | + | 
|  | ** `None`: | 
|  | + | 
|  | All differences in whitespace are highlighted. | 
|  | + | 
|  | ** `Trailing`: | 
|  | + | 
|  | Whitespace differences at the end of lines are ignored. | 
|  | + | 
|  | ** `Leading, Trailing`: | 
|  | + | 
|  | Whitespace differences at the beginning and end of lines are ignored. | 
|  | + | 
|  | ** `All`: | 
|  | + | 
|  | All differences in whitespace are ignored. | 
|  |  | 
|  | - [[tab-width]]`Tab Width`: | 
|  | + | 
|  | Controls how many spaces should be displayed for a tab. | 
|  |  | 
|  | - [[columns]]`Columns`: | 
|  | + | 
|  | Sets the preferred line length. At this position, lines are wrapped. | 
|  |  | 
|  | - [[lines-of-context]]`Lines Of Context`: | 
|  | + | 
|  | The number of context lines that should be displayed before and after | 
|  | any diff. If the `entire file` checkbox is selected, the full file is | 
|  | rendered. | 
|  | + | 
|  | Skipped common lines can be expanded by clicking on the placeholder for | 
|  | the skipped lines. | 
|  | + | 
|  | Clicking on "... skipped <n> common lines ..." expands the complete | 
|  | block of skipped lines. | 
|  | + | 
|  | If many lines are skipped there are additional links to expand the | 
|  | context by ten lines before and after the skipped block. | 
|  | + | 
|  | image::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"] | 
|  |  | 
|  | - [[syntax-highlighting]]`Syntax Highlighting`: | 
|  | + | 
|  | Controls whether syntax highlighting should be enabled. | 
|  | + | 
|  | The language for the syntax highlighting is automatically detected from | 
|  | the file extension. | 
|  |  | 
|  | - [[whitespace-errors]]`Show trailing whitespace`: | 
|  | + | 
|  | Controls whether trailing whitespace is highlighted. | 
|  |  | 
|  | - [[show-tabs]]`Show Tabs`: | 
|  | + | 
|  | Controls whether tabs are highlighted. | 
|  |  | 
|  | - [[mark-reviewed]]`Mark Reviewed`: | 
|  | + | 
|  | Controls whether the files of the patch set should be automatically | 
|  | marked as reviewed when they are viewed. | 
|  |  | 
|  | [[keyboard-shortcuts]] | 
|  | == Keyboard Shortcuts | 
|  |  | 
|  | Navigation within the review UI can be completely done by keys, and | 
|  | most actions can be controlled by keyboard shortcuts. Typing `?` opens | 
|  | a popup that shows a list of available keyboard shortcuts. | 
|  |  | 
|  |  | 
|  | image::images/user-review-ui-change-screen-keyboard-shortcuts.png[width=800, link="images/user-review-ui-change-screen-keyboard-shortcuts.png"] | 
|  |  | 
|  |  | 
|  | In addition, Vim-like commands can be used to link:#key-navigation[ | 
|  | navigate] and link:#search[search] within a patch file. | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |