Commit.HistorySourceBuild a commit history.
The type for node keys.
val v :
[> Perms.write ] t ->
node:node_key ->
parents:commit_key list ->
info:info ->
(commit_key * v) Lwt.tCreate 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_key ->
commit_key ->
(commit_key list, [ `Max_depth_reached | `Too_many_lcas ]) result Lwt.tFind the lowest common ancestors lca between two commits.
val lca :
[> Perms.read_write ] t ->
info:(unit -> info) ->
?max_depth:int ->
?n:int ->
commit_key list ->
(commit_key option, Merge.conflict) result Lwt.tval three_way_merge :
[> Perms.read_write ] t ->
info:(unit -> info) ->
?max_depth:int ->
?n:int ->
commit_key ->
commit_key ->
(commit_key, Merge.conflict) result Lwt.tCompute the lcas of the two commit and 3-way merge the result.
val closure :
[> Perms.read ] t ->
min:commit_key list ->
max:commit_key list ->
commit_key list Lwt.tSame as Node.Graph.closure but for the history graph.
val iter :
[> Perms.read ] t ->
min:commit_key list ->
max:commit_key list ->
?commit:(commit_key -> unit Lwt.t) ->
?edge:(commit_key -> commit_key -> unit Lwt.t) ->
?skip:(commit_key -> bool Lwt.t) ->
?rev:bool ->
unit ->
unit Lwt.tSame as Node.Graph.iter but for traversing the history graph.