27
considered the user management of such constraints by the use of protection matrices which
specify merge permissions based on the combination of change type and user identity or role
in the collaboration.
Merging allows more flexible updates in collaborative work situations where changes will
be made simultaneously to the same data object. Semantic consistency can ultimately only
be determined by a person, so that in the general case, fully automatic merging that always
produces the correct result is impossible. However, automatic merge facilities should also be
able to preserve as much of the individual editing histories being merged as possible, so that
the number of system-required user interventions can be kept to a minimum. Editing histo-
ries should be corrected when a user needs to make an adjustment, when the merging sys-
tem determines that it needs user input. This means that automatic processing must be sup-
ported by any fully general model of merge.
This creates a strong pressure both for the flexibility and the determinacy of any merge
algorithm. Maximum flexibility is achieved by separating checks for probable editing con-
flicts from the rules for resolving editing operations. It also requires the option to allow
automatic resolution of syntactic conflicts. For instance, independently made changes can be
ordered by any consistent tie-breaking procedure (perhaps based on unique timestamps). In
situations like interactive editing it may be more important to get a deterministic and un-
ambiguous result, than to produce the “correct” result, especially if that requires interrupt-
ing the user to resolve a conflict, or waiting for the network to finish some synchronization
protocol. In the case of “tie-breaking” the most important characteristic of the procedure is
that it produce consistent results for independent applications, without requiring active
communication at the time of conflict resolution.
One real problem with any form of merging is the possibility of surprising results when
operational conflicts are resolved, or when asynchronously executed operations are inte-
grated into an editing history. In the synchronous editing case some of the anomalies are
considered the user management of such constraints by the use of protection matrices which
specify merge permissions based on the combination of change type and user identity or role
in the collaboration.
Merging allows more flexible updates in collaborative work situations where changes will
be made simultaneously to the same data object. Semantic consistency can ultimately only
be determined by a person, so that in the general case, fully automatic merging that always
produces the correct result is impossible. However, automatic merge facilities should also be
able to preserve as much of the individual editing histories being merged as possible, so that
the number of system-required user interventions can be kept to a minimum. Editing histo-
ries should be corrected when a user needs to make an adjustment, when the merging sys-
tem determines that it needs user input. This means that automatic processing must be sup-
ported by any fully general model of merge.
This creates a strong pressure both for the flexibility and the determinacy of any merge
algorithm. Maximum flexibility is achieved by separating checks for probable editing con-
flicts from the rules for resolving editing operations. It also requires the option to allow
automatic resolution of syntactic conflicts. For instance, independently made changes can be
ordered by any consistent tie-breaking procedure (perhaps based on unique timestamps). In
situations like interactive editing it may be more important to get a deterministic and un-
ambiguous result, than to produce the “correct” result, especially if that requires interrupt-
ing the user to resolve a conflict, or waiting for the network to finish some synchronization
protocol. In the case of “tie-breaking” the most important characteristic of the procedure is
that it produce consistent results for independent applications, without requiring active
communication at the time of conflict resolution.
One real problem with any form of merging is the possibility of surprising results when
operational conflicts are resolved, or when asynchronously executed operations are inte-
grated into an editing history. In the synchronous editing case some of the anomalies are