Module X.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_hash is a pretty-printer for a commit. Displays only the hash.

val pp : t Fmt.t

pp is a full pretty-printer for a commit. Displays all information.

val v : ?clear:bool -> repo -> info:info -> parents:commit_key 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

When clear is set (the default), the tree cache is emptied upon the function's completion, mirroring the effect of invoking Tree.clear.

val tree : commit -> tree

tree c is c's root tree.

val parents : commit -> commit_key list

parents c are c's parents.

val info : commit -> info

info c is c's info.

val hash : commit -> hash

hash c is c's hash.

Import/Export

val key : commit -> commit_key

key c is c's key.

val of_key : repo -> commit_key -> commit option Lwt.t

of_key r k is the the commit object in r with key k, or None if no such commit object exists.

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

of_hash r h is the commit object in r with hash h, or None if no such commit object is indexed in r.

Note: in stores for which commit_key = hash, this function has identical behaviour to of_key.