On 28 June 2010 04:11, Rob Lanphier <robla(a)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!