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.
Features
- Allows other developers to see your local changes
- Allows users to navigate your source tree and see affected files (both versioned and not)
- URLs are shareable and easy to cut and paste to other users
- Works with Subversion
- Provides colorized diffs between revisions
- Provides syntax highlighting for Ruby, YAML, & XML
Screenshots
Viewing a diff...
![diff](screen3_small.png) |
Viewing a working copy...
![working copy](screen2_small.png) |
Downloading
The latest release can be downloaded from
here. The current development version can be access directly via subversion:
svn co https://reviewmonk.svn.sourceforge.net/svnroot/reviewmonk/trunk
Requirements
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.
Configuration
If you open up the settings file in your favorite editor...
lib/settings.yaml
You can see that there are a number of options you may wish to change based on your environment.
Here's the default configuration...
subversion:
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
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.
Contributors
The following have all helped in making contributions to ReviewMonk. Thank you everyone that has helped out!
- Scott Windsor <scott at obopay dot com>
- Eric Butler
- Catherine Rodgers
- Joshua Haberman
- Christina Chen
- Gaurav Oberoi
- Chuck Groom
- BillMonk
- Obopay
License
The source code for this application has been licensed under the
MIT license. Developers interested in contributing
should proceed to its SourceForge
project
page.