On 28 June 2010 04:11, Rob Lanphier <[email protected]> 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! _______________________________________________ Wikitech-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/wikitech-l
