Requesting a code review
As someone who requests code review from your teammates, you typically perform the following sequence of tasks:
- Commit changes to your VCS repository.
- Create a code review.
- Invite participants (reviewers and optionally watchers).
- Discuss issues, if any, by way of exchanging comments with the reviewer(s).
- Work on resolving the issues, commit the fixes, and add the new revision(s) to the existing review.
- As soon as reviewers approve your changes, you close the review.
While committing changes is self-explanatory, we'll describe the other steps below.
Create a code review
- Log into Upsource and locate your project in the list:
- Click on the project name to open it. The project home view displays the revisions listed in chronological order:
- Scroll down the list or use the Search field to find the revision you're interested in.
- Move your cursor to the revision entry — a Create review link will appear:
- Click Create review. A new review is created, opened, and its ID is displayed at the top left (JD-CR-27 in our case):
The default review title is the same as your revision which becomes a part of this review.
Add participants to the reviewers or watchers list depending on the action you want them to take.
To add a reviewer or a watcher
Upsource might suggest you the most suitable reviewers (based on previous assignments) which you can select without opening the reviewer selection pop-up.
You can add as many participants as you wish and whenever you wish: when starting a review, or at any time after that.
The people you add are notified via e-mail and Upsource news feed.
Participate in discussion
You can post comments, addressing them to other participants, and reply to the comments left by reviewers.
There are three types of comments:
- Review comment is not tied up to any particular file or part of code — its subject matter may be anything within the scope of the review.
- Code selection comment is intended to pinpoint a particular code fragment in one of the files being reviewed.
- Line comment is associated with a specific line of code.
To post a line comment
To post a code selection comment:
When a discussion thread comes to a logical end, either you or the reviewer can mark it as resolved.
A progress bar underneath a reviewer's avatar will give you a hint on each reviewer's progress. Hover over it to see how many files out of those included with the review the reviewer has already opened.
When reviewers accept or raise concern about your changes, their resolution is indicated with a corresponding flag:
Add new revisions
If the revision you had originally submitted for review was not approved by the reviewers, you can work on the issues, commit fixes, and attach one or several new revisions to the original review for approval.
This way the whole discussion and revision history is contained within one review, and as long as the review is open it will always be visible throughout the different revisions.
You can attach a new revision to an existing review either from that revision:
or from the review:
To detach a revision from a review, in the review home view, click the icon next to the revision name:
Open a review in IDE
When you click this link, the review and the revisions it includes will be displayed in a separate tab of the Review tool window of your currently opened IDEA-based IDE. For this option to work, the IDE should have the Upsource plug-in installed and configured and the project should be open in the IDE.
As soon as all reviewers have approved your changes, and you expect no further input, you can close the review by clicking a corresponding button in the right pane:
A review can go through three different stages:
- Pending — review is created and reviewers assigned.
- Completed — all reviewers completed the review by raising concern about or accepting your changes.
- Closed — review is closed by its author, as no further action is required or expected from all participants.
Whether you've created a review by mistake, or want to clean up and get rid of outdated reviews, you can always delete a review no matter what its current status is.