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)