[Standards] Shared Whiteboard Editing
joonas.govenius at gmail.com
Wed Aug 29 00:30:40 UTC 2007
On 8/28/07, Jonathan Chayce Dickinson <chayce.za at gmail.com> wrote:
> The mediator takes all the diffs submitted since the revision that the
> user was working on and offsets the newly submitted diff according to
> those. e.g. (insert X bytes at Y bytes position)
> previous diff1: (insert 10 at 100) (insert 20 at 200)
> previous diff2: (insert 6 at 10) (insert 5 at 150)
> new diff3: (insert 10 at 180) (insert 20 at 500)
> Note: diff1 created revision 700, the original diff2 was made from a
> file checked out from revision 690, but now it is relevant to revision
> 700 i.e. what it turns out to be after the process below.
> So now the mediator knows where the new data must be placed/deleted/changed:
> after considering diff1: diff3 == (insert 10 at 190) (insert 20 at 530)
> after considering diff2: diff3 == (insert 10 at 201) (insert 20 at 535)
This is essentially what Abicollab does
(http://uwog.net/~uwog/abiword/abicollab.pdf). It also treats the
document as one long string.
However, I think we can do better than that with XML documents.
More information about the Standards