From: Leonard Rosenthol (leonardr_at_lazerware.com)
Date: Sun Dec 14 2003 - 11:13:23 EST
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