replikativ.crdt.cdvcs.meta
Operation on metadata and commit-graph (directed acyclic graph) of a CDVCS.
Metadata CDVCS-format for automatic server-side
synching (p2p-web). Have a look at the documentation for more
information.
consistent-graph?
(consistent-graph? graph)
downstream
(downstream {bs :heads, cg :commit-graph, :as cdvcs} {obs :heads, ocg :commit-graph, :as op})
Applies downstream updates from op to state. Idempotent and
commutative.
intersection
(intersection s1 s2)
lowest-common-ancestors
(lowest-common-ancestors graph-a heads-a graph-b heads-b)
(lowest-common-ancestors graph-a heads-a visited-a start-heads-a graph-b heads-b visited-b start-heads-b)
Online BFS implementation with O(n) complexity. Assumes no cycles
exist.
remove-ancestors
(remove-ancestors new-graph graph-a heads-a heads-b)