Comparing barkeep to other code review tools
Clone this wiki locally
We originally built Barkeep because after using each of the popular code review systems (Reitveld, Github enterprise, Crucible, Phabricator and Gerrit) for a few months each, we concluded that none fit our needs well.
However, many of these tools inspired features in Barkeep, like Github's clean commenting UI, Phabricator's strange humor, Gerrit's configurability.
Every system has its weaknesses, including Barkeep. We think these are its strengths relative to other code review systems we've used:
Naturally supports post-commit workflows
Barkeep was built at Ooyala, where we usually prefer a post-commit code review workflow for our products. This is where developers push to master as soon as their code is ready (i.e. looks nice, tests are written and pass) so other developers can begin integrating it. Code review happens when it's convenient for the team (within 1-2 days), and any comments are addressed in future commits. We like this workflow because it's aggressively fast and requires low overhead. Barkeep is built for this.
A lot of time is spent reading and reviewing code, so the code review system should be easy on the eyes. Barkeep was designed with a minimal UI. The common actions, like leaving a quick comment and approving a commit, are low-friction. And there's tons of keyboard shortcuts because the mouse is the devil.
Clean UI also applies to email. A lot of work went into making the emails Barkeep sends noise-free, useful and threadable.
Some code review system codebases are complex and unwieldy, and extending them is no fun. In contrast, we've tried to keep the codebase small, approachable and fun to hack on. We extend and improve Barkeep all the time because we use it every day and have tools like continuous integration built on top of it.
Here's a summary in table form. Note that this is our subjective perception as of June 2012. We chose the features in this matrix to reflect our priorities, but they may not reflect your priorities, so take it with a grain of salt.
|Feature||Review board||Reitveld||Github enterprise||Phabricator||Crucible||Gerrit||Barkeep|
|Naturally handles a post-commit workflow||*||*||*|
|Useful, relevant email notifications||*||*||*|
|Syntax highlighted diffs||*||*||*||*||*|
|Fast, clutter-free UI||*||*|
|Light on process||*||*|
|Small hackable codebase||*||*|