| :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]]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 |
| --------- |