Commit 99cc03b5 authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent 124a8543
...@@ -244,7 +244,32 @@ type nodeTrack struct { ...@@ -244,7 +244,32 @@ type nodeTrack struct {
// //
// The result B of applying δ to A is: // The result B of applying δ to A is:
// //
// B = A.Difference(δ.Del).Union(δ.Add) // B = A.xDifference(δ.Del).xUnion(δ.Add) (*)
//
// (*) NOTE δ.Del and δ.Add might have their leafs starting from non-leaf nodes in A/B.
// This situation arises when δ represents a change in path to particular
// node, but that node itself does not change, for example:
//
// c* c
// / \ /
// 41* 42 41
// | | | \
// 22 43 46 43
// | | |
// 44 22 44
//
// Here nodes {c, 41} are changed, node 42 is unlinked, and node 46 is added.
// Nodes 43 and 44 stay unchanged.
//
// δ.Del = c-42-43 | c-41-22
// δ.Add = c-41-43 | c-41-46-22
//
// The second component with "-22" builds from leaf, but the first
// component with "-43" builds from non-leaf node.
//
// Only complete result of applying both δ.Del and δ.Add produce correctly
// PP-connected set.
//
// XXX place // XXX place
type δtrackIndex struct { type δtrackIndex struct {
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment