70
The decision has implications for the results of merging change sets, and thus influences
the extent to which the resulting system attains the goal of operation completeness by pro-
viding the most useful result for a set of operations. The basic addressing issue is the control
of data dependencies between different operations and the question of what results are most
useful.
Briefly consider the dynamic copy (clone) operation in Figure 3.2. Sometimes cloned text
is boilerplate material that needs to be modified to be suitable for its final destination. At
other times, the dynamic update propagation provided by updating the source of a dynamic
copy operation is needed to enforce consistency (after all, this is a primary reason for using
a dynamic copy). So we see that we really need two addresses that affect the “same data”:
one to indicate the source of a cloned copy so the update will propagate to each instance,
and the other to indicate individual copies so they can be updated without changing the
source. One thing to notice is that any changes that refer to destination addresses will have
no effect in versions that do not include the copy change C2 that creates the destination.
For instance, changes to the cloned instance of the string “ABC” would have no effect in
versions that do not contain the copy change (C2) that created that string.
Given that it is sometimes useful to have separate “before” and “after” addresses when
dealing with move and copy, the question is whether it is always useful (and necessary), or
whether there are cases where this complexity can be foregone. The following discussion ex-
amines these questions for move and copy, with respect to both point and range anchors.
The final model will in fact provide all these forms of address even for the few cases where
the value seems slight, because it keeps the model more uniform. However, these issues are
important even where they don’t directly impact the theory, since they provide important
insight into what policies should be provided as defaults for applications.
To gain a full understanding of the implications of these interactions, we need to con-
sider how the regions affected by an operation relate to the source and destination of move
The decision has implications for the results of merging change sets, and thus influences
the extent to which the resulting system attains the goal of operation completeness by pro-
viding the most useful result for a set of operations. The basic addressing issue is the control
of data dependencies between different operations and the question of what results are most
useful.
Briefly consider the dynamic copy (clone) operation in Figure 3.2. Sometimes cloned text
is boilerplate material that needs to be modified to be suitable for its final destination. At
other times, the dynamic update propagation provided by updating the source of a dynamic
copy operation is needed to enforce consistency (after all, this is a primary reason for using
a dynamic copy). So we see that we really need two addresses that affect the “same data”:
one to indicate the source of a cloned copy so the update will propagate to each instance,
and the other to indicate individual copies so they can be updated without changing the
source. One thing to notice is that any changes that refer to destination addresses will have
no effect in versions that do not include the copy change C2 that creates the destination.
For instance, changes to the cloned instance of the string “ABC” would have no effect in
versions that do not contain the copy change (C2) that created that string.
Given that it is sometimes useful to have separate “before” and “after” addresses when
dealing with move and copy, the question is whether it is always useful (and necessary), or
whether there are cases where this complexity can be foregone. The following discussion ex-
amines these questions for move and copy, with respect to both point and range anchors.
The final model will in fact provide all these forms of address even for the few cases where
the value seems slight, because it keeps the model more uniform. However, these issues are
important even where they don’t directly impact the theory, since they provide important
insight into what policies should be provided as defaults for applications.
To gain a full understanding of the implications of these interactions, we need to con-
sider how the regions affected by an operation relate to the source and destination of move