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