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.
Every commit can point to an entry point in a node graph, where user-defined contents are stored.
Create a new commit.
Get the commit parents.
Commits form a append-only, fully functional, partial-order data-structure: every commit carries the list of its immediate predecessors.
merge t is the 3-way merge function for commit.
val lcas : [> Perms.read ] t -> ?max_depth:int -> ?n:int -> commit -> commit -> (commit list, [ `Max_depth_reached | `Too_many_lcas ]) result Lwt.t
Find the lowest common ancestors lca between two commits.
val lca : [> Perms.read_write ] t -> info:Info.f -> ?max_depth:int -> ?n:int -> commit list -> (commit option, Merge.conflict) result Lwt.t
val three_way_merge : [> Perms.read_write ] t -> info:Info.f -> ?max_depth:int -> ?n:int -> commit -> commit -> (commit, Merge.conflict) result Lwt.t
lcas of the two commit and 3-way merge the result.
Same as NODE_GRAPH.closure but for the history graph.
val iter : [> Perms.read ] t -> min:node list -> max:node list -> ?commit:(commit -> unit Lwt.t) -> ?edge:(node -> node -> unit Lwt.t) -> ?skip:(node -> bool Lwt.t) -> ?rev:bool -> unit -> unit Lwt.t
Same as NODE_GRAPH.iter but for traversing the history graph.