[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
Merging (was: 7 times "Re:")
- To: ZZ Development <zzdev@xxxxxxxxxx>
- Subject: Merging (was: 7 times "Re:")
- From: Benjamin Fallenstein <b.fallenstein@xxxxxx>
- Date: Sat, 24 Feb 2001 22:36:22 +0100
- References: <20010223114609.A18335@xxxxxxxxxxx> <3A96DA92.FA0032F4@xxxxxx> <20010224115918.A32572@xxxxxxxxxxx> <3A979326.15B8DB20@xxxxxx> <20010224131831.A911@xxxxxxxxxxx> <20010224131240.F15568@xxxxxxxxxxxxxx> <20010224152828.A1257@xxxxxxxxxxx> <20010224170058.H15568@xxxxxxxxxxxxxx>
Tuomas wrote:
> The merging, on the other hand is something new that hasn't
> to my knowledge been done in this type of space - maybe we could
> write an article on that once done.
Better first figure it out, then think about what to do with it. :-)
The main problem with merging is that it is functionality-dependant,
i.e. dependant on the semantics of the cells. Consider the following
case: Cells A, B, and C are connected on d.foo. One user changes this to
A, B, C, D; another user changes it to A, B, C, E. How to handle this
depends on the semantics of d.foo.
If d.foo is a list dimension, like d.cursor-list, then the resulting
rank should be e.g. A, B, C, D, E. Here we know that the order of D and
E doesn't really matter. If d.foo is like d.cursor, on the other hand,
where each connection is individually important and the rank as a whole
has no meaning, then D and E are in a conflict that must be resolved by
the user. Except that if we know about cursors, we can realize that
it'll suffice to make the connection C, D and then connect E to D on
d.cursor-list. If d.foo is d.clone, we can make the rank A, B, C, D, E
if in both of the users' versions, A has the same content. If the
content of this cell was changed, though, not only are these contents in
conflict, but the connection of D and E might be, too. Or not. That
depends of the specific use of cloning. If d.foo is a dimension for
which the tailcell has special significance, the two changes are in
conflict, but in how many dimensions is the tailcell special? Only in a
few ones. Maybe whether the tailcell has significance can only be found
out by looking along d.bar. Maybe their connections along d.baz will
reveal that D and E say in fact the same thing, and only one of them
should be kept.
These issues are why I have for some time argued that the system should
only support bringing the different versions into the same space, and
merging should be an action done by the applitudes.
-b.