Module Vcs.Make

Parameters

module OT : Stdlib.Map.OrderedType
module K : Kind

Signature

module Branch : sig ... end
type id = OT.t
type 'a kind_gen = 'a K.t
type kind = Branch.t kind_gen
type branch_info = {
kind : kind;
root : id;
pos : id;
}
type ('diff, 'info, 'property_data) t
val empty : id -> ( 'diff, 'info, 'property_data ) t
val current_branch : ( 'e, 'i, 'c ) t -> Branch.t
val branches : ( 'e, 'i, 'c ) t -> Branch.t list
val get_branch : ( 'e, 'i, 'c ) t -> Branch.t -> branch_info
val reset_branch : ( 'e, 'i, 'c ) t -> Branch.t -> id -> ( 'e, 'i, 'c ) t
val branch : ( 'e, 'i, 'c ) t -> ?root:id -> ?pos:id -> Branch.t -> kind -> ( 'e, 'i, 'c ) t
val delete_branch : ( 'e, 'i, 'c ) t -> Branch.t -> ( 'e, 'i, 'c ) t
val merge : ( 'diff, 'i, 'c ) t -> id -> ours:'diff -> theirs:'diff -> ?into:Branch.t -> Branch.t -> ( 'diff, 'i, 'c ) t
val commit : ( 'diff, 'i, 'c ) t -> id -> 'diff -> ( 'diff, 'i, 'c ) t
val rewrite_merge : ( 'diff, 'i, 'c ) t -> id -> ours:'diff -> theirs:'diff -> at:id -> Branch.t -> ( 'diff, 'i, 'c ) t
val checkout : ( 'e, 'i, 'c ) t -> Branch.t -> ( 'e, 'i, 'c ) t
val set_info : ( 'e, 'info, 'c ) t -> id -> 'info -> ( 'e, 'info, 'c ) t
val get_info : ( 'e, 'info, 'c ) t -> id -> 'info option
module Dag : Dag.S with type node = id with type node = OT.t with type NodeSet.t = Stdlib.Set.Make(OT).t with type NodeSet.elt = OT.t
val dag : ( 'diff, 'info, 'cdata ) t -> ( 'diff, 'info, 'cdata ) Dag.t
val create_property : ( 'e, 'i, 'c ) t -> id list -> 'c -> ( 'e, 'i, 'c ) t
val property_of : ( 'e, 'i, 'c ) t -> id -> 'c Dag.Property.t list
val delete_property : ( 'e, 'i, 'c ) t -> 'c Dag.Property.t -> ( 'e, 'i, 'c ) t
val gc : ( 'e, 'info, 'c ) t -> ( 'e, 'info, 'c ) t * Dag.NodeSet.t
val reachable : ( 'e, 'info, 'c ) t -> id -> Dag.NodeSet.t