Re: revision marks

From: David Chart (linux@dchart.demon.co.uk)
Date: Sat May 18 2002 - 10:48:13 EDT

  • Next message: F J Franklin: "commit: abiword-plugins: ./nextgen.sh --script"

    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