We frequently add multiple people to our reviews, and wish for more than one of them to accept the revision before we land it. However, we have discovered some anti patterns emerging recently:
When you mark a review as accepted, the whole review is accepted regardless of whether there are other reviewers as well. When the review is accepted, it vanishes from the home screen for everyone else, only to be found in the "Waiting for others" section under Differential. This is incidentally also where the other reviews currently in progress are found (for our most active developers, it is not uncommon to have more than 10 active revisions here), so people very rarely walk through them checking if they have done their duty.
People have been noticing this, so now some people have become reluctant to be the first to accept the revision, because they are aware of how much that reduces the chances of anyone else also looking over the revision. Some people end up mimicking mailing list rules and just post the comment "+1" instead, circumventing the whole reviewer status mechanism.
This phenomenon is especially visible on the more bigger and complex reviews; there is no good way to signal that "yes, I have looked through this and it looks good, but I don't feel confident enough to be the sole reviewer for this".
My suggestion for solving this: The reviewer status field is expanded to include something like STATUS_LOOKEDOVER (need a better name, but bear with me), and we get something similar to the +1/+2 responses I have seen used in other sites and mailing lists (here's one I found on http://wiki.typo3.org/Gerrit_Review_Workflow#Reviews_in_Gerrit)
Code Review:
+2: Verification approved
+1: Could commit, needs more approval
0: No opinion, just adding some comment
-1: Please do not commit
-2: Veto
Note that "+1" plus "+1" does not add to "+2". The +1 is only a indicator of how many people agree with the change (even anonymous reviewers). Only an active contributor can ultimately give a "+2", approving a change and unlocking the "Submit" button.
When only "LOOKEDOVER"-type responses have come in, the revision is marked as "partially accepted". Once someone marks it as accepted, it becomes accepted just like today.
For the home/differential screen, I then suggest adding a new Differential configuration option that lets you choose between the following behaviors:
- Once accepted or partially accepted, the revision is moved to "waiting for others" (same as today's behavior)
- Partially accepted revisions are still visible on home screens (and stay in "blocking" and "active" queues)