Hi, (Refined)
Goals - More productively collaborative work Stages: 5. Work flow or things like that 4. Merge after edit 3. Collision precaution 2. Collision detection 1. Lock before edit (current) 5. Work flow or things like that (I have no idea about this topic.) 4. Merge after edit Both Writer and Calc could utilize the already-implemented feature, "Edit - Compare Document..." to find differences between user's current document and a document file that someone else have saved. Two documents would be displayed side by side: Current Disk file +---------+ +---------+ | xxx | | xxx | | | | | # aaaaaaa # # mmmmmmm # <-- differences would be marked # bbbbb # # nnn # in different color and shape | xxxxxxx | | xxxxxxx | | yyyyyy | | yyyyyy | Each chunk has choices: +---------+ +---------+ [Yours] [Other's] [Back] [Skip] [Cancel] Impress might implement "Edit - Compare Document..." which would find differences slide by slide. Scenario A team of several people has been creating an Impress document with 100s slides. User A is responsible for the section 1 ranging slide 1 to 20. User B is working on the section 2 ranging slide 21 to 39. User C is ... To help their collaborative work, Impress could implement "Share document" or "Merge after edit." Actually, they might be quite similar each other. E.g. Calc 3.0's "Share document" could be considered "Merge after edit." http://www.openoffice.org/dev_docs/features/3.0/#Spreadsheet_Collaboration_Through_Workbook_Sharing User interface for the situation -(6) below would be: (a) Overwrite the file with yours (Warning: someone else's changes will be lost) (b) Save your document as another file (c) Compare and/or Merge (will show differences between (3) and (6), and help User X merge them) (d) Cancel 3. Collision precaution User A |----+------------+-----------------+--------------> time line ^open ^modify ^save 1 2 3 User X |--------+--------------------------------+--------+-----> ^open ^modify ^save 4 5 6 User Y |-----------+-----------+-------+------------------------> ^open ^modify ^save 7 8 9 User X could be informed that the disk file has been altered by someone else -(5) and prompted: (a) Proceed (Warning: collision would happen upon save) (b) Retrieve the latest file from disk (same as File - Reload) (c) Cancel User Y could be informed that someone else has started to edit the document -(8) and prompted: (a) OK (Warning: collision would happen upon save) (b) Cancel To implement that, (a) Create a notification file -(2). (b) Check the existence of notification file -(5), (8). 2. Collision detection User A |----+------------+-----------------+--------------> time line ^open ^modify ^save 1 2 3 User X |--------+--------------------------------+--------+-----> ^open ^modify ^save 4 5 6 User X could be informed the the disk file has been altered by someone else -(6) and prompted: (a) Overwrite the file with yours (Warning: someone else's changes will be lost) (b) Save your document as another file (c) Cancel To implement that, (a) Memorize both a size and digest value such as MD5 check sum of a file -(4). (b) Retrieve the values of the disk file again, and verify them -(6). If, at least, one of them is different from the original value, prompt the user to ask what to do. 1. Lock before edit (current) A division with 100s staffs runs a file server. 1. A general manger sends them an e-mail to see a document in the file server. 2. User A opens the file with OpenOffice.org 3.0 as usual. 3. User B opens the file with OpenOffice.org 3.0 and faces a dialog window saying Document file 'xxx.odt' is locked for editing by: user_a (mm.dd.yyyy hh:mm) Open document read only or open a copy of the document for editing. [Open Read Only] [Open Copy] [Cancel] 4. User C opens the file with OpenOffice.org 3.0 and faces the same dialog. 5. User D, one of the line managers, opens it ..., and rushes into User A's booth and scolds A not to EDIT it. User A did not intend to edit it or even bother anybody else, but just wanted to SEE it. User A |---+------------+-----------------> time line ^open it ^start editing it 1 2 User B |----------+-----------------------> ^open 3 User C |-------------------------+--------> ^open 4 (a) Message With current implementation, User B will be given a message "Document file 'xxx.odt' is locked for editing by: ..." -(3) It, however, might not be appropriate for that situation since User A has not edit it yet or would not edit it at all. (b) Timing A lock file could be created at the timing (2), instead of (1). Regards, Tora --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.org For additional commands, e-mail: dev-h...@openoffice.org