Module type Vcs.S
module Branch : sig ... endtype idtype 'kind branch_info={kind : [> `Master ] as kind;root : id;pos : id;}type ('kind, 'diff, 'info, 'property_data) tconstraint 'kind = [> `Master ]
val empty : id -> ('kind, 'diff, 'info, 'property_data) tval current_branch : ('k, 'e, 'i, 'c) t -> Branch.tval branches : ('k, 'e, 'i, 'c) t -> Branch.t listval get_branch : ('k, 'e, 'i, 'c) t -> Branch.t -> 'k branch_infoval reset_branch : ('k, 'e, 'i, 'c) t -> Branch.t -> id -> ('k, 'e, 'i, 'c) tval branch : ('kind, 'e, 'i, 'c) t -> ?root:id -> ?pos:id -> Branch.t -> 'kind -> ('kind, 'e, 'i, 'c) tval delete_branch : ('k, 'e, 'i, 'c) t -> Branch.t -> ('k, 'e, 'i, 'c) tval merge : ('k, 'diff, 'i, 'c) t -> id -> ours:'diff -> theirs:'diff -> ?into:Branch.t -> Branch.t -> ('k, 'diff, 'i, 'c) tval commit : ('k, 'diff, 'i, 'c) t -> id -> 'diff -> ('k, 'diff, 'i, 'c) tval rewrite_merge : ('k, 'diff, 'i, 'c) t -> id -> ours:'diff -> theirs:'diff -> at:id -> Branch.t -> ('k, 'diff, 'i, 'c) tval checkout : ('k, 'e, 'i, 'c) t -> Branch.t -> ('k, 'e, 'i, 'c) tval set_info : ('k, 'e, 'info, 'c) t -> id -> 'info -> ('k, 'e, 'info, 'c) tval get_info : ('k, 'e, 'info, 'c) t -> id -> 'info option
val dag : ('kind, 'diff, 'info, 'cdata) t -> ('diff, 'info, 'cdata) Dag.tval create_property : ('k, 'e, 'i, 'c) t -> id list -> 'c -> ('k, 'e, 'i, 'c) tval property_of : ('k, 'e, 'i, 'c) t -> id -> 'c Dag.Property.t listval delete_property : ('k, 'e, 'i, 'c) t -> 'c Dag.Property.t -> ('k, 'e, 'i, 'c) tval gc : ('k, 'e, 'info, 'c) t -> ('k, 'e, 'info, 'c) t * Dag.NodeSet.tval reachable : ('k, 'e, 'info, 'c) t -> id -> Dag.NodeSet.t