73
operation (where contextual effects are less significant) There is not a great benefit in
transforming the range back to the original source of its data. It is worth noting that an ap-
plication will always be able to trace data back to its ultimate origin; the real question here
is whether that kind of backtracing is useful, and whether, if useful, it should be mandatory.
For the target of a move operation the answer seems to be “no.”
However, there is one important exception to this. In the case that the data in a range is
completely contained in the destination of a single move operation,it does make sense to re-
cord that range at the source rather than the destination of the move. This case is the flip
side of the case of overlapping move sources discussed above, where nesting ranges offered
special opportunities for merging.
It is also like the case of insertion points. When the move operation is not essential to
the context of the range the ability to combine changes is increased by eliminating any un-
needed dependency on the move operation. The fact that a range applies to a moved in-
stance of some data should not exclude that range from applying to the same data in the
absence of the move operation. For instance, a paragraph might be the source of copy or
move operations, but those should be independent of whether the paragraph as a wholehad
been moved from some other location. In general, free combination of changes is increased
when ranges that are entirely contained in a moved region are recorded at the source rather
than the destination of the move. With the copy, of course, this is not possible, since the
source and the destination must be able to have independent editing histories. By contrast,
only one of the source and destination of a move operation can appear in any version, and
never both, which means that as long as the range is not fragmented, it does not matter if
the range is recorded at the source of the move (except to prevent some kinds of change
combination). The deletion of data makes sense when carried back to the original source.
operation (where contextual effects are less significant) There is not a great benefit in
transforming the range back to the original source of its data. It is worth noting that an ap-
plication will always be able to trace data back to its ultimate origin; the real question here
is whether that kind of backtracing is useful, and whether, if useful, it should be mandatory.
For the target of a move operation the answer seems to be “no.”
However, there is one important exception to this. In the case that the data in a range is
completely contained in the destination of a single move operation,it does make sense to re-
cord that range at the source rather than the destination of the move. This case is the flip
side of the case of overlapping move sources discussed above, where nesting ranges offered
special opportunities for merging.
It is also like the case of insertion points. When the move operation is not essential to
the context of the range the ability to combine changes is increased by eliminating any un-
needed dependency on the move operation. The fact that a range applies to a moved in-
stance of some data should not exclude that range from applying to the same data in the
absence of the move operation. For instance, a paragraph might be the source of copy or
move operations, but those should be independent of whether the paragraph as a wholehad
been moved from some other location. In general, free combination of changes is increased
when ranges that are entirely contained in a moved region are recorded at the source rather
than the destination of the move. With the copy, of course, this is not possible, since the
source and the destination must be able to have independent editing histories. By contrast,
only one of the source and destination of a move operation can appear in any version, and
never both, which means that as long as the range is not fragmented, it does not matter if
the range is recorded at the source of the move (except to prevent some kinds of change
combination). The deletion of data makes sense when carried back to the original source.