WORK IN PROGRESS, this page is under edition !
reVu is a plugin for Intellij IDEA which helps to perform team code reviews or simply annotate your code. Intellij IDEA is great for automatic code inspections, but not at the point to make team code reviews useless
There's much litterature literature about peer code review process, I'll just mention main advantages according to for me:
- each team member knows better application code
- code becomes more homogeneous
- code is usually better first because revievers reviewers may find potential issues or improvements, but also because authors pay more attention when they know their code will be reviewed
Some tools already exist, but they are either commercial (see Crucible from AtlassionAtlassian) or are not tied to IDEA (GoogleCode provides a review process, Eclipse and Netbeans have their code review plugin, ...) whereas IDE integration is a key feature.
general (browsing + editor)Image Added
- very simple
- no server required. Review definitions are stored in XML files managed through your Version Control System.
- flexible. You are able to customize:
- custom tags used to classify tags freely
- keep original source line
- if reviewed code is changed or deleted, reVu will keep issue and will display it as desynchronized
- VCS (Version Control System) integration
- issues are attached to VCS version (if code is under VCS of course)
- templates management
- review definitions may be built from review templates which you can create according to your needs
- private / shared reviews
- each user may create its own reviews and decide to share them to team
Users, priorities and tags are defined in a referential. You'll probably use similar referentials between your reviews. In this case, you should create a review template with your custom referential and copy or extend it for your you reviews. Extend a template means that changes performed upon template will be replicated for reviews extending it, whereas copy makes the review independant from template.
user refImage Added
Status combo defines current status of review. Administrator is in charge of changing this status according to current phase of your review:
Just point on reviewed code and invoke Add Issue action (Alt RI shortcut by default). Issue is attached to selected ccde: if code is changed, issue is marked as desynchronized but is still available (and you'll still be able to preview initial code at any time).
add issue (with tags)Image Added
Write a summary for this item. OptionnallyOptionally, you may add information such as priority, or tags.
The browsing tool window allows to navigate and update existing issues. There's one tab for each active review (i.e. reviewing or fixing) plus a tab gathering all issues.
Depending on your role, you are able to update issue informations information and change issue status : resolved, closed, reopened.
You can also configure issue recipients, i.e. author(s) which should fix issues, adding free notes and preview reviewed code. When no recipient is specified, it means all authors defined for review are concerned.
Issue table is searchable through 2 ways:
Issue table is also sortable and you can choose visible columns using column selector button next to search field.
reVu adds also a scope for each active review. Theses scopes contain files which have at least one issue.
When a review is shared and several users work at the same on this review, usually its XML file must be merged. Most of time, there won't be any conflict, but sometimes you'll have to performe perform merge. It's the price to pay for having a such simple mechanism A custom merge resolution mechanism might be added in future releases.
If you find this issue critical, you should consider using a server based tool such as Crucible from Atlassian, see http://www.atlassian.com/software/crucible. I don't know it, but Atlassian usually makes great products.
Each review has its own user list (but remember you should create a review template with your default users). User roles are specific to reviews: a user may be defined as reviewer in a review and author in another one.
More information is available on reVu site: http://idea-revu.googlecode.com
Icons come from famous FamFam Silk icon library: http://www.famfamfam.com/lab/icons/silk/