| # Review It? - Android application for Gerrit |
| |
| [Gerrit](https://www.gerritcodereview.com) provides web based code review and |
| repository management for the Git version control system. The Review It? app is |
| an Android app for Gerrit that allows sorting of incoming changes and review of |
| small/trivial changes. |
| |
| The app suppports a 2-step review process: |
| |
| 1. Sort the incoming changes |
| 2. Do review on the selected changes |
| |
| Some users may just want to do reviews and skip the first step. |
| |
| This is not an official Google product. |
| |
| ## Sorting of incoming changes |
| |
| When working with Gerrit it is a common workflow that reviewers are not always |
| explicitly assigned, but that committers and contributors watch the incoming |
| changes and choose those changes for review that are interesting to them. |
| |
| Watching incoming changes can be done in different ways, e.g: |
| |
| * manually go through the list of open changes |
| * register project watches to get email notifications about new changes |
| |
| These approaches have some problems in common when the number of incoming |
| changes gets too high: |
| |
| * some changes of interest are not noticed (e.g. get lost in the mail inbox) |
| * at the time of notification there may be no time for immediate review, and at |
| the moment when there is time to review, some of the interesting changes have |
| been forgotten |
| * changes that are not interesting popup again and again whenever they are |
| updated |
| |
| The 'ReviewIt?' Android app tries to solve these problems by offering a simple |
| way to sort incoming changes: |
| |
| * mark interesting changes to review them later (by putting a labeled star on |
| them) |
| * mark non-interesting changes as ignored |
| |
| The actual review of the changes is done later, either by using the Gerrit web |
| UI or by using the review functionality of the Review It? app. The idea is that |
| the sorting of incoming changes allows users to stay updated about their project |
| while they are not in office (see new changes and sort them), but the code |
| review is done only later when there is time for it. Also some large changes may |
| not be reviewable on the small display of a phone. |
| |
| The changes that have been starred are accessible by a change query or a Gerrit |
| dashboard, and hence they can be easily found when there is time to do reviews. |
| The app should configure an entry for this dashboard in the Gerrit menu |
| automatically (e.g. ‘My’ > ‘Review It’). |
| |
| Updates for ignored changes are filtered out so that the noise is reduced. |
| In addition to starring/ignoring a change, the app also offers to skip changes. |
| Skipping a change means that the user is asked about this change once more when |
| it was updated. |
| |
| Within the app the user can define a change query for the incoming changes. The |
| results are then presented one by one. For each change a decision (star, ignore |
| or skip) has to be made to go to the next change. |
| |
| Starring/ignoring a change can be done by swiping the change to the right/left |
| side. In addition there are buttons to trigger starring, ignoring and skipping a |
| change. |
| |
| The main app screen provides the information that is most relevant to deciding |
| whether a change is interesting: |
| |
| * subject + commit message |
| * project, branch, topic |
| * age (when was the change last updated) |
| * owner |
| * patch set number, number of positive and negative Code-Review votes |
| * number of comments |
| * number of reviewers |
| * positive/negative Verified votes (green/red background) |
| * whether the change is mergeable (orange background) |
| |
| This information is presented in a very compressed way and the focus is on the |
| subject and the commit message. |
| |
| All actions (star, ignore and skip) are undoable by clicking on the undo action |
| in the menu, so that mistakes in sorting can be easily corrected. |
| |
| Sometimes when watching a change one knows another person that is well suited to |
| review this change. This is why there is an add reviewer action in the menu that |
| allows to add another person as reviewer. Reviewer names are auto-completed on |
| typing. |
| |
| There is also a menu entry to abandon the current change if it is no longer |
| needed. |
| |
| By clicking on the bottom of the change one can go to a detailed change view |
| where more information is presented, e.g. the change number, the change link, |
| the approvals and the list of files. This detailed change view is zoomable. |
| |
| The diff for all files can be seen in one unified diff view. |
| |
| The file diffs are presented in a scroll view where the header with the file |
| name of the currently viewed file diff is sticky at the top of the screen. |
| |
| Skipped context lines can be expanded. |
| |
| ## Reviewing (small) changes |
| |
| This is not implemented yet, but it is envisioned to show a list of changes |
| (either those starred by the sorting step or all incoming changes) and then |
| allow the user to select a change for review. This leads to the view with the |
| unified diff of all changed files and at the end of it there will be voting |
| buttons to approve or reject the change. |
| |
| ## Contribute |
| |
| Contributions are welcome! |
| |
| Please read the [contribution |
| guidelines](https://gerrit.googlesource.com/apps/reviewit/+/master/CONTRIBUTING). |
| |
| Note that we do not accept Pull Requests via the Github mirror. |
| |