25
quirement and the need to be fully apprised of another application instance’s current state
to accept an operation from it.
1.8 Generalized merge
A key feature for asynchronous collaborative editors is mergingthe changes made to the
same shared data by separate editing sessions. Even software configuration management sys-
tems support merge capabilities, though they are generally based on a process that uses
lock-based file access to avoid change conflicts. The need for temporarily divergent editing
histories exists even in this well-structured form of collaboration, where users are highly
motivated to follow a formal structured process. In the inherently less-structured and con-
trolled area of text editing, the need to merge potentially incompatible changes is even
greater. Purely synchronous editing systems have little need to support generalized merge;
while updates from collaborators can be considered as a single-change special case of merge,
the need to merge several changes into a single state at once is not essential to support in-
teractive editing.
The biggest problem with merge is that of conflicts. Independently made changes may
conflict in several senses. A syntacticconflict is a situation where a system cannot satisfy all
the desired requirements given a pair of operations. For instance, if two words are inserted
at exactly the same position in a sentence, then the correctresult is not well-defined. In
some situations a system determined resolution of the conflict might be acceptable, and in
others it might not be. The best resolution strategy will in fact vary over time, e.g.an auto-
matic resolution strategy might be ideal for an interactive brainstorming session at the start
of a project, while even a potential conflict might require human approval in the final stages
of authoring an important document. Conflict management policies may also vary within a
document, with some regions being more sensitive to change than others. Syntactic conflicts
quirement and the need to be fully apprised of another application instance’s current state
to accept an operation from it.
1.8 Generalized merge
A key feature for asynchronous collaborative editors is mergingthe changes made to the
same shared data by separate editing sessions. Even software configuration management sys-
tems support merge capabilities, though they are generally based on a process that uses
lock-based file access to avoid change conflicts. The need for temporarily divergent editing
histories exists even in this well-structured form of collaboration, where users are highly
motivated to follow a formal structured process. In the inherently less-structured and con-
trolled area of text editing, the need to merge potentially incompatible changes is even
greater. Purely synchronous editing systems have little need to support generalized merge;
while updates from collaborators can be considered as a single-change special case of merge,
the need to merge several changes into a single state at once is not essential to support in-
teractive editing.
The biggest problem with merge is that of conflicts. Independently made changes may
conflict in several senses. A syntacticconflict is a situation where a system cannot satisfy all
the desired requirements given a pair of operations. For instance, if two words are inserted
at exactly the same position in a sentence, then the correctresult is not well-defined. In
some situations a system determined resolution of the conflict might be acceptable, and in
others it might not be. The best resolution strategy will in fact vary over time, e.g.an auto-
matic resolution strategy might be ideal for an interactive brainstorming session at the start
of a project, while even a potential conflict might require human approval in the final stages
of authoring an important document. Conflict management policies may also vary within a
document, with some regions being more sensitive to change than others. Syntactic conflicts