Databases Reference
In-Depth Information
result that does not correspond to exactly what they want, but they will not have to
manually guide the system. The model that they look at, while applicable to files,
considers the general case of objects by encapsulating the differences in the object
types as described below.
They investigate two different types of merges, consolidation merges and rec-
onciliation merges . In a consolidation merge, the assumption is that the changes
made in both models should be integrated; most changes will not conflict with one
another too much, and that changes from both models should be incorporated into
their system. In a reconciliation merge, the assumption is that the merge is being per-
formed to resolve conflicts. The two different types of merges call for very different
outcomes.
Their system operates using a number of merge matrices. A merge matrix for
two models to be merged, say A and B , has the rows represent edits made to achieve
model A and the columns represent the edits needed to achieve model B . The matrix
entries dictate how to merge the result of each (row, column) pair of edits. For exam-
ple, a merge matrix for an object that is a sequence of elements may look like the
one below (from Munson and Dewan 1994 ):
Sequence
Insert element
Delete element
Change element
No change
Insert element
Both
Row
Delete element
Row
User
Row
Change element
User
Merge edits
Row
No change
Column
Column
Column
The blank entries represent situations that are either impossible (e.g., deleting an
entry in one model and adding it in another) or where no change is required (e.g.,
if the element stays the same in both models). The entries that specify “row” mean
that the version of the element from the model represented in the row should be
taken, and similarly “column” indicates that the column's version should be taken.
So, for example, if a sequence were unchanged in model A and deleted in model B ,
the action would be dictated by the entry at (no change, delete element), which, in
this case is to delete the sequence since that is the action performed in model B ,the
one represented by the column.
The specification of these elements in the merge matrix is what allows for the
algorithm to move on the scale from manual to automatic merging; if there are no
entries that require manual intervention, then the algorithm is fully automatic.
In addition to the algorithm, they also list the characteristics that a merge tool
should have. They state that a merge tool should support:
Automatic merging,
Interactive merging,
Merging of both text files and more structured objects,
Use of the semantics of the objects to drive the merging (rather than just a
requirement that all objects merge in the same way), and
Specification of preferred policies by the user.
 
Search WWH ::




Custom Search