Re: some explanations about revisions and related stuff

From: Leonard Rosenthol (leonardr_at_lazerware.com)
Date: Sun Dec 14 2003 - 11:13:23 EST

  • Next message: Jordi Mas: "Re: Updated download page"

    At 9:21 AM +0000 12/14/03, Tomas Frydrych wrote:
    >One down side of using revisions is that you could potentially
    >distribute an electronic version of a doc with the revision
    >information in it when you do not want to, particularly when the
    >revisions are collapsed.

            So there is no "accept revisions" command as there is in
    Word? When you accept a revision, it removes the old information (if
    it's a strikeout or replacement) and adds the new.

            What is Abi doing?

    >We also keep track of some basic information about open/save
    >sessions. For each open/save session (i.e., once if you open a
    >document and save it at least once while working on it) we increase
    >the document version number by 1, store a time when this happens, and
    >a random id. We also record cumulative editing time for each version
    >number.

            Every time you save, the version number should be increased...

            I am assuming the version number is a long or even a long long...

    >Between the uid and the version history we can tell (a) if two
    >documents belong to the same family, and, (b) if they do at which
    >version number (and so when) they became different from each other.
    >In other words, we can construct family-trees of documents with the
    >same id (perhaps most useful of this is the abilty to tell that two
    >documents are identical without having to compare what is in them).

            Simple comparison of the version ID won't work, however.

            Create a document (id=???, v==0) and do some writing. Save
    it (id=???, v==1). Now duplicate the file outside of Abi - you now
    have two docs each with id==?? and v==1. Edit the first making one
    set of changes and save (id==???, v==2) and edit the second making a
    completely different set of change (id==???, v==2). Doc ID's are the
    same. Versions are the same. Contents are VERY different...

    >Comparing and merging documents
    >---------------------------------------------
    >In additon to the versioning info we can now compare two arbitrary
    >docs to each other: we can compare their stylesheets, we can compare
    >their contents and we can also compare their formating.

            So rather than a simplistic binary diff, you are actually
    doing a "DOM difference" (no offense to our own Dom, of course ;).
    Interesting. Are you using any of the well documented
    XML-differencing algorithms or something specific to Abi's structure?

    >What is more, we can merge the contents of two documents using
    >revision marks: having a doc1 and doc2, AbiWord can make revisions to
    >doc1 that are necessary for it to look like doc2. These are exactly
    >the same as human made revisions, and can subsequntly be
    >accepted/rejected in the normal manner or undone using
    >Undo. (The merging algorithm will need some tuning, but it basically
    >works.)
    >

            Nice!

    Leonard

    -- 
    ---------------------------------------------------------------------------
    Leonard Rosenthol                            <mailto:leonardr_at_lazerware.com>
                          			     <http://www.lazerware.com>
    


    This archive was generated by hypermail 2.1.4 : Sun Dec 14 2003 - 11:14:02 EST