package irmin
Commit values represent the store history.
Every commit contains a list of predecessor commits, and the collection of commits form an acyclic directed graph.
Every commit also can contain an optional key, pointing to a node value. See the Node signature for more details on node values.
module type S = sig ... end
module type Maker = sig ... end
Maker
provides a simple implementation of commit values, parameterized by commit info.
module Generic_key : sig ... end
Generic_key
generalises the concept of "commit" to one that supports object keys that are not strictly equal to hashes.
module V1 : sig ... end
V1 serialisation.
module Portable : sig ... end
Portable form of a commit implementation that can be constructed from a concrete representation and used in computing hashes. Conceptually, a Commit.Portable.t
is a Commit.t
in which all internal keys have been replaced with the hashes of the values they point to.
module type Store = sig ... end
Store
specifies the signature for commit stores.
module Store
(I : Info.S)
(N : Node.Store)
(S : Content_addressable.S with type key = N.key)
(H : Hash.S with type t = S.key)
(V : S with type hash = S.key and type t = S.value and module Info := I) :
Store
with type 'a t = 'a N.t * 'a S.t
and type key = S.key
and type hash = S.key
and type value = S.value
and module Info = I
and module Val = V
Store
creates a new commit store.
module type History = sig ... end
History
specifies the signature for commit history. The history is represented as a partial-order of commits and basic functions to search through that history are provided.
module History
(C : Store) :
History
with type 'a t = 'a C.t
and type v = C.Val.t
and type node_key = C.Node.key
and type commit_key = C.key
and type info = C.Info.t
Build a commit history.
include Maker with module Info = Info.Default
module Info = Info.Default