I've managed to introduce ReviewBoard to the coding workflow in my company, while "introduce" means having installed and presented it. We also have a general agreement that we need code reviews sorely, however, we are not quite sure how we'd like to do it.
Our main revision control is SVN, so we rather limited in branching and merging. Some strategies I've thought about:
- Pre-commit review from the trunk. Pros include having a single patch, having no unreviewed code in the repository. Contras are having to keep your checkout clean or doing poor-man's branching with several checkouts
- Post-commit review from the trunk. Works fine with Review Board, however it doesn't stop people from committing dirty code and also allows them to ignore review requests.
- Post-commit review from a feature branch. Pros are obvious since a feature can be worked on independently, however there is a big pain in creating server-based branches and also a much bigger pain of keeping different branches synced. Also see item 2.
I'd like to make this as painless as possible, so there are several possible automated additions to the workflow, like having a robot committing code which earned at least X "Ship it!" votes and making Review Board "follow" a feature branch with commit-hooks. Still, I'm not sure which code review workflow might be the best for our team of about 8 coders. We won't be able to change revision control systems, i.e. git-svn and SVK are out of the question (while the latter is dead anyway).
Can you recommend anything from your experience?