ReviewMonk is a code reviewing tool for Subversion built with Ruby on Rails. It's a webserver that runs on your machine and allows you to share all your local code changes with others before you check them in.


Viewing a diff...
Viewing a working copy...
working copy


The latest release can be downloaded from here. The current development version can be access directly via subversion:
    svn co

The following software must be installed on your system. I've only tested ReviewMonk under Linux, but if you can get these packages installed on your system, there shouldn't be much of a reason why ReviewMonk would not work.
You can install syntax, escape, & mongrel as gems or as source packages, it's up to you. Mongrel is optional, but I'd recommend it if you really would like to run ReviewMonk as a daemon and leave it running all the time.


If you open up the settings file in your favorite editor...

You can see that there are a number of options you may wish to change based on your environment.
Here's the default configuration...
svn: /usr/bin/svn
  diff: /usr/bin/diff
cat: /bin/cat
project_root: /home/$USER/projects
You may have svn, diff, cat and your project root in different locations based on your system setup, so change these to suit your situation. Note that environment variables are supported here, so feel free to use $HOME, $USER, etc. NOTE: I would not recommend adding or relying on your $PATH for your binary commands (svn, diff, cat), as it's not sound security practice for applications.


Running ReviewMonk should be the same as running any rails app. I'd recommend using mongrel, as it makes it easy to deamonize. Also pick a port you aren't using, and maybe one that's easy to pass around the office (I tend to use 8000).
    script/server -d -p 8000
Note that you must run the server as the same user account that has subversion repository locally. This is so ReviewMonk can run subversion commands and output files.

Security Notes

I would not recommend using ReviewMonk out on the Internet in a non-access controlled way. ReviewMonk has access to all of the files under your projects directory, and can display any file that exists under that root (temp files, config files, log files, etc.). This is meant for flexibility and convenience rather than security. Ideally, ReviewMonk works well in a firewalled environment or with some other means of access control. If you do intend on exposing your ReviewMonk, consider using apache with htaccess or even authentication inside the application controller.

Developer Notes

There's no real reason why this couldn't be ported to a different source control system, other than demand. Feel free to make changes. Also, the theme is pretty configurable within CSS (check out public/themes/) - feel free to customize this to suit your company, team, project, or whatever you're into. We kept the default theme stylized after our BillMonk website.


The following have all helped in making contributions to ReviewMonk. Thank you everyone that has helped out!

The source code for this application has been licensed under the MIT license. Developers interested in contributing should proceed to its SourceForge project page.