On 28 June 2010 04:11, Rob Lanphier robla@wikimedia.org wrote:
I had forgotten that "undo" might possibly actually do something useful in this context. That said, let's recap what has happened so far.
You start with accepted revision A1, and have pending revisions P1, P2, and P3. Once the user rejects P1, lets assume that that creates a new pending revision P4 that is the result of that undo. Now what? If they then review the diff between P1 and P2, they might mistakingly accept P2, even though it still contains the delta between A1 and P1. We could ask them to review the diff between P1 and P4, but that's now an aggregate of the P1P2 delta and the P2P3 delta, sans the A1P1 delta.
I just don't think there's a clean way to reject an intermediate pending revision. Accepting? Sure, wonderful, that will work well. There's a reasonably strong argument for encouraging acceptance of intermediate revisions as part of the review process (so long as it always involves comparison to the latest accepted revision). But encouraging undo on intermediate revisions leaves things in a really weird place.
Ah... you're right. I hadn't thought things through carefully enough. Ok, how about alternative D?
D:
1) Display diff between A1 and P1. 2) P1 is rejected. Nothing happens to the database at this point, the rejection of P1 is just remembered somewhere. 3) Display a diff between A1 and "P2 minus A1P1 delta" (that can be created temporarily using the undo feature) 4a) If that diff is rejected, display a diff between A1 and "P3 minus A1P2 delta" (or equivalently, "P3 minus A1P1 delta minus P1P2 delta"). 4b) If that diff (in 3) is accepted, display a diff between "P2 minus A1P1 delta" and "P3 minus A1P1 delta". 5) Continue in what I hope is the obvious fashion, because I'm thoroughly confused! 6) Create a revision equal to that latest accepted pseudo-revision and mark it as accepted.
This will be a mess to program (and no, I'm not volunteering!), but it should be very intuitive for the reviewer. If at any time the undo feature can't create one of the pseudo-revisions (the ones in quotes), you just fail gracefully.
What do you think?
PS The aspirin is in the second drawer on the left!