views:

4348

answers:

19

It has been well established that code reviews are good, so this question is purely about the mechanics. For a dev environment centered around Visual Studio and Subversion what are the best tools for handling code reviews?

We currently use TortoiseSVN as the Subversion client. so accessing diffs, logs, etc. is fairly straight forward, but I think the process could be streamlined more by a tool that was designed for code reviews. Are there any out there?

Update: Thanks for the input. ReviewBoard looks interesting, but would be difficult to fit into our infrastructure due to the lack of Windows hosting. rietveld appears to be at a very early stage at the moment. The commercial offerings certainly look more polished and the pricing isn't bad for a tool that would be a non-trivial part of a developers time.


For those interested, see related questions

+13  A: 

Take a look at Review Board. It is a bit of a pain to install, but once you are there, it is really helpful, looks good and is easy to use for the developers.

It's a bit lacking in terms of windows-support though, but if you are not afraid of dropping to the command line to call "post-review", you'll be fine.

I'm using it here on Windows (and Linux. And MacOS X) and it works fine.

It supports git, svn, Mercurial and Perforce working copies and repositories (it even has dedicated git-svn support).

pilif
"a bit of a pain to install" is a bit of an understatement
matt b
In case it's the first time you've heard about it, RB is a web app, and so it is only difficult to install if you're not familiar with its dependencies: python, apache/mod-python, django, db. RB itself is trivial to install once you have those.So if you're the kind who doesn't always know where you saved your downloads, forget about RB.
Geoffrey Zheng
+8  A: 

Rietveld (Apache License 2.0), written by Guido van Rossum (Python creator and Google employee) based on the internal tool he created for Google Code reviews (Mondrian)

See also this Article about Rietveld

Sam Hasler
+5  A: 

I don't think you really need fancy tools. Most of your normal dev environment is fine.

Code reviews should really be made with the two or three people sitting at the computer.

  • Visual Studio does the navigation in the code. If it's not enough, you can use WorkspaceWiz or Visual AssistX, which enhance IntelliSense
  • Extra chairs, and an extra monitor if the chairs are placed too far from your monitor.
  • A good diff viewer. I prefer DiffMerge over Tortoise's differ because the color scheme is lighter, but I guess that's just personal taste.
  • I sometimes wish I had a projector, to make it easier to see, but it would only be necessary when you have more than 2 reviewers.

We also use ReviewBoard, but it's a lot less interactive, so we keep it for when the reviewer is super-busy, or working from home. I like direct dialog much better, and it's way more efficient.

Carl

Carl Seleborg
+1  A: 

To add to the suggestions of ReviewBoard and Rietveld, you may also want to look at Atlassian's Crucible.

Dan Dyer
+21  A: 

My company makes Code Collaborator, the first and most popular commercial tool for peer code review.

It has more users and features than any other tool, but it's also the most expensive! Here's a comparison chart.

Still, I'll agree with pilif that Review Board is the best tool amongst the open source set. Although it doesn't do very much, if what you want matches what it does, you should use it!

@Carl RE: Don't need a tool. I agree that any form of code review is better than nothing. I also agree that tools can sometimes cause less interaction, which reduces important effects like teaching and sharing. However, in-person meetings-based reviews take tons of time, so typically you cannot do those on 100% of your check-ins. Therefore, might I suggest that tool-based review is appropriate for the bulk of changes (so it can be done swiftly and without interruption), but that people should not be afraid to put down the tool and talk to one another at any time.

Hopefully other users of Code Collaborator will vote this up! :-)

Jason Cohen
Your post is really useful. I really liked the comparison chart.
David Segonds
+1  A: 

We used CodeStriker for a while. It is free and allows automatic creation of reviews when source is committed to the source control system. But, I found that it lacked some features which made it rather difficult to use. All the reviews are listed together so it is hard to separate your reviews from other developers. This is something that all of the commercial tools seem to support. It also generates a lot of email, one email per comment.

We recently had a look at CodeCollaborator and I liked that a lot, but did not have the budget for it. I am now going to take a look at Review Board.

David Dibben
A: 

I can propose Google Code Reviews review tool (see also http://www.google.com/enterprise/marketplace/viewListing?productListingId=5143210+12982233047309328439)

FoxyBOA
+2  A: 

Pair programming.

Tim Ottinger
A: 

In modern systems, which are based on simple components collaborating in a complex architecture, it is important to start by looking at the big picture and then drilling down to specific classes while maintaining the ability to easily understand how each class collaborates with the rest of the system. This can greatly reduce the time it takes to review the code.

nWire does just that for Java in Eclipse. It allows you to visualize and browse the system components and associations, making it a vital tool for code review.

(I'm the creator of nWire)

zvikico
+1  A: 

We used Crucible/Fisheye, in conjunction with SVN for a fairly large (1 million lines of code) ~12-15 active contributors. It was a good solution for reviewing incremental changes, but we a bit cumbersome to use for a whole new project. Atlassian was nice enough to give us a 3 month trial because we were already customers for the Jira, Confluence, and Bamboo products. In the end that project was a bit of an outlier and we didn't buy Crucible/Fisheye, but we're looking into integrating it into some of our normal code review process.

I also have found Atlassian's products fairly easy to do simple customizations, and not bad for more complex stuff; and their pricing is straight forward and pretty fair.

A: 

There's this smart bear link that usually appears at the right of this site, though I don't know how it works, it says $5 for 5 users

Samuel Carrijo
Ya that's what enticed me to get this started haha, seems like there's strings attached and it gets expensive after 5 days
Andrew G. Johnson
@Andrew I think u can buy it at this price for 5 days, but you can use for one year before getting more expensive. Not sure, though
Samuel Carrijo
+2  A: 

Review Board is a pretty solid open source option. It's probably worth giving it a try before paying for any pricier (e.g., $300/user) packages.

dmcer
+1  A: 

You could look at other code analysis tools such as FX Cop. Free to run and you can setup specific rules, etc. to enforce.

RSolberg
+4  A: 

We use Crucible and it's great, but I have no idea what it costs.

Tim Sylvester
All the pricing is up on their site at http://www.atlassian.com/software/crucible/pricing.jsp . It starts at $120 per user. Im a big fan of the Atlassian software, if your using Fisheye and/or Jira then they all work nicely together.
Todd Hunter
A: 

I believe it is $300 for simultaneous user... just how many people will be doing code reviews at once?

We use Code Collaborator at work, and it is very nice... worth the $300/user, although it wouldn't shock me if there are some good Open Source tools out there.

Chris Arguin
+1  A: 

You could checkout Reitveld which was developed by Guido van Rossum as a substantial example application for Google app engine. There's even and instance running on GAE.

Aaron Maenpaa
A: 

I've recently become aware of Malevich which is open source and works well on Windows. It doesn't appear to have great subversion support yet, but it is open source so that could be added.

Steve Rowe
A: 

the $5 for 5 promotion was 5 licenses of code reviewer for $5 and the promotion only lasted for 5 days. all the proceeds went to wikipedia- http://blog.smartbear.com/the%5Fsmartbear%5Fblog/2009/06/economic-stimulus-bear-style.html

jbd
A: 

trac has a CodeReview plugin: http://trac-hacks.org/wiki/PeerReviewPlugin

Moisei