Module KV_MAKER.Commit

Commit defines immutable objects to describe store updates.

type t = commit

The type for store commits.

val t : repo -> t Type.t

t is the value type for t.

val pp_hash : t Fmt.t

pp is the pretty-printer for commit. Display only the hash.

val v : repo -> info:Info.t -> parents:hash list -> tree -> commit Lwt.t

v r i ~parents:p t is the commit c such that:

  • info c = i
  • parents c = p
  • tree c = t
val tree : commit -> tree

tree c is c's root tree.

val parents : commit -> hash list

parents c are c's parents.

val info : commit -> Info.t

info c is c's info.

Import/Export

val hash : commit -> hash

hash c it c's hash.

val of_hash : repo -> hash -> commit option Lwt.t

of_hash r h is the the commit object in r having h as hash, or None is no such commit object exists.