Up

module Ir_commit

: sig

Manage the database history.

#
module type S = sig
include Tc.S0
#
type commit
#
type node
#
val create : Ir_task.t -> ?node:node -> parents:commit list -> t
#
val node : t -> node option
#
val parents : t -> commit list
#
val task : t -> Ir_task.t
end
#
module Make : functor (C : Tc.S0) -> functor (N : Tc.S0) -> S with type commit := C.t and type node = N.t
#
module type STORE = sig
include Ir_ao.STORE
#
module Key : Ir_hash.S with type t = key
#
module Val : S with type t = value and type commit := key
end
#
module type HISTORY = sig
#
type t
#
type node
#
type commit
#
val create : t -> ?node:node -> parents:commit list -> commit Lwt.t
#
val node : t -> commit -> node option Lwt.t
#
val parents : t -> commit -> commit list Lwt.t
#
val merge : t -> commit Ir_merge.t
#
val lca : t -> commit -> commit -> commit list Lwt.t
#
val closure : t -> min:commit list -> max:commit list -> commit list Lwt.t
#
module Store : Ir_contents.STORE with type t = t and type key = commit
end
#
module History : functor (N : Ir_contents.STORE) -> functor (S : STORE with type Val.node = N.key) -> HISTORY with type t = N.t * S.t and type node = N.key and type commit = S.key
end