From: David Chart (linux@dchart.demon.co.uk)
Date: Sat May 18 2002 - 10:48:13 EDT
Responding to Tomas, and most of the email looked good.
I just want to step through a really complex case. I'll use <r +n></>
for whatever carries the revision properties.
Original:
Abiword rocks on toast.
Reviser 1 capitalises the W of Abiword:
Abi<r -1>w</><r +1>W</>ord rocks on toast.
Reviser 2 deletes 'Abi' (boo, hiss)
<r -2>Abi</><r -1>w</><r +1>W</>ord rocks on toast.
Reviser 3 changes toast to toads. (Because I kept typing that by
mistake.)
<r -2>Abi</><r -1>w</><r +1>W</>ord rocks on <r
-3>toast</><r+3>toads</>.
Reviser 4 changes Word to OpenOffice.
<r -4><r -2>Abi</><r -1>w</><r +1>W</>ord</><r +4>OpenOffice</> rocks on
<r -3>toast</><r+3>toads</>.
Reviser 5 deletes the whole sentence.
<r -5><r -4><r -2>Abi</><r -1>w</><r +1>W</>ord</><r +4>OpenOffice</>
rocks on <r -3>toast</><r+3>toads</>.</>
Reviser 6 stets the sentence, r3's change, and r4 and r2's changes to
the subject.
<r -5,+6><r -4,+6><r -2,+6>Abi</><r -1>w</><r +1>W</>ord</><r
+4,-6>OpenOffice</> rocks on <r -3,+6>toast</><r+3,-6>toads</>.</>
Reviser 7 re-stets the toads thing.
<r -5,+6><r -4,+6><r -2,+6>Abi</><r -1>w</><r +1>W</>ord</><r
+4,-6>OpenOffice</> rocks on <r -3,+6,-7>toast</><r+3,-6,+7>toads</>.</>
Reviser 8 removes the whole 'on toads' qualifier.
<r -5,+6><r -4,+6><r -2,+6>Abi</><r -1>w</><r +1>W</>ord</><r
+4,-6>OpenOffice</> rocks<r -8> on <r
-3,+6,-7>toast</><r+3,-6,+7>toads</></>.</>
Reviser 9 adds 'like a penguin'.
<r -5,+6><r -4,+6><r -2,+6>Abi</><r -1>w</><r +1>W</>ord</><r
+4,-6>OpenOffice</> rocks<r +9> like a penguin</><r -8> on <r
-3,+6,-7>toast</><r+3,-6,+7>toads</></>.</>
Is that the idea? That looks like it contains all the information we
could need.
> To our list of view types (Normal, Print, Web), we will add a new
> view Revision. In the non-Revision views the text of all revisions will
> be displayed (using different colours, etc.), and the user will be
> able to use commands Tools->Revisions->Accept Change and
> Tools->Revisions->Reject Change, which will deal with revisions on
> individual basis or within current selection.
>
> In the special Revision view, the user will be able to see how the
> document as a whole looks after a particular revision, plus will have
> commands Tools->Revisions->Accept Current State of Document,
> which will allow him/her to accept all the changes that resulted in
> the document as s/he is viewing it, and Tools->Revisions->Accept
> Current Revision, which would allow him/her to accept all the
> changes made by the present revision.
I assume this includes some fancy conflict handling. Go back to my
example, and suppose you are faced with
OpenOffice rocks on toads. (revision 4)
Now, if you only accept 4's revisions, should the result be:
OpenOffice rocks on toads.
or
OpenOffice rocks on toast.
Taken literally, you get the latter, but 4 never wrote that.
Even worse, how do you accept only 5's revisions? 5 has over-written
lots of changes made by earlier revisers. You aren't either accepting or
rejecting those revisions, so they should still be available in the
document. Just removing the specific revision id doesn't work, because
the sentence should still be there, and it contains units which have
other revision levels tagged.
I think it might be better to start with display/accept all revisions up
to and including a given number, but also to save all the information
about what got changed when, so that if we come up with a good way to
resolve conflicts we can put it in.
Also, we will need a good UI distinction between rejecting a revision,
and stetting a revision. Stetting a revision is itself a (new) revision,
while rejecting a revision removes that revision from the document.
-- David Chart
This archive was generated by hypermail 2.1.4 : Sat May 18 2002 - 10:52:14 EDT