I am a huge fan of Gerrit, other than its UI. I ran it along with Jenkins[0] at a previous company. Its review model is far, far, far superior to Github's. As you said, it keeps successive patch sets, and allows for diffs against previous patch sets, rather than only against the original parent. This allows for you to see only the most lastest changes, so you don't have to wonder if anything else was changed and review the entire patch.
> $ git review
I actually wrote a bash script with the same name and a few other shortcuts before my company started working on OpenStack. I was quite pleased with the workflow I provided the team I was on.
$ git start <new-branch> <branch-from>
$ <do work as normal>
$ git review
$ git finish # removes the branch
These three commands along with the git-flow branching model[1] (but not the tool itself), leads to clean, sensible history in my opinion.
I respect that Github tries to maintain a low-barrier of entry to increase use and ease, but I believe there's a way to maintain it while still having a great patch-review model.
> $ git review
I actually wrote a bash script with the same name and a few other shortcuts before my company started working on OpenStack. I was quite pleased with the workflow I provided the team I was on.
These three commands along with the git-flow branching model[1] (but not the tool itself), leads to clean, sensible history in my opinion.I respect that Github tries to maintain a low-barrier of entry to increase use and ease, but I believe there's a way to maintain it while still having a great patch-review model.
0: http://jenkins-ci.org/ 1: http://nvie.com/posts/a-successful-git-branching-model/