I'm considering using GitHub as our primary tool for doing code review. With features like in-line commenting and compare view, it seems to have a lot of features that tools like Gerrit have on offer.
Has anyone else used GitHub for this? If so, what is your workflow? And what have your experiences been doing so, both positive and negative?
As I get some thoughts on this and sort out what will work best for us, I'll edit my question to share my own proposed workflow.
EDITED with proposed workflow
Step 0. Set up a post-receive hook using the awesome reviewth.is.
Then:
Commit as usual with
commit -a -s
, but in the commit message append#reviewthis @username
.If the build fails, the review is skipped until the build is restored.
Reviewer comments on commit line-by-line or at the file level.
GitHub automagically notifies reviewee of comments.
Reviewer notifies reviewee by email when comments are completed with a review summary.
Reviewee replies to reviewer comments within GitHub, allowing the project access to history of code reviews.
My biggest problems are with Step 2 and Steps 4/5. Gerrit works nicely for not asking for reviews unless the build succeeds; I'd like a way to do this within GitHub. Steps 4/5 also have the potential to get annoying (multiple emails) and reduce the automatic nature of the review process (requiring an emailed summary).
We use Hudson as our build server, if that helps.
Any thoughts on these problems would also be helpful.