package tezos-context

  1. Overview
  2. Docs
Tezos: on-disk context abstraction for `octez-node`

Install

Dune Dependency

Authors

Maintainers

Sources

tezos-16.0.tar.gz
sha256=ad9e08819871c75ba6f4530b125f7d157799398e4d77a1e6bfea9d91ff37ff55
sha512=c5dc4d40cc09bc6980fbbdb5c2e105bf4252cf9cfcb2b49660b0ebe4dc789f6709ec3b3bf2f87d81580d3eed9521eeb1c960f24d9b14eb0285aaba1f84d10a9b

doc/tezos-context.helpers/Tezos_context_helpers/Context/Make_tree/argument-2-DB/Head/index.html

Module DB.Head

Managing the store's heads.

val list : repo -> commit list Lwt.t

list t is the list of all the heads in local store. Similar to git rev-list --all.

val find : t -> commit option Lwt.t

find t is the current head of the store t. This works for both persistent and temporary branches. In the case of a persistent branch, this involves getting the the head associated with the branch, so this may block. In the case of a temporary store, it simply returns the current head. Returns None if the store has no contents. Similar to git rev-parse HEAD.

val get : t -> commit Lwt.t

Same as find but raise Invalid_argument if the store does not have any contents.

val set : t -> commit -> unit Lwt.t

set t h updates t's contents with the contents of the commit h. Can cause data loss as it discards the current contents. Similar to git reset --hard <hash>.

val fast_forward : t -> ?max_depth:int -> ?n:int -> commit -> (unit, ff_error) result Lwt.t

fast_forward t h is similar to set but the t's head is updated to h only if h is stricly in the future of t's current head. max_depth or n are used to limit the search space of the lowest common ancestors (see lcas).

The result is:

  • Ok () if the operation is succesfull;
  • Error `No_change if h is already t's head;
  • Error `Rejected if h is not in the strict future of t's head.
  • Error e if the history exploration has been cut before getting useful results. In that case. the operation can be retried using different parameters of n and max_depth to get better results.
val test_and_set : t -> test:commit option -> set:commit option -> bool Lwt.t

Same as set but check that the value is test before updating to set. Use set or merge instead if possible.

val merge : into:t -> info:Info.f -> ?max_depth:int -> ?n:int -> commit -> (unit, Irmin.Merge.conflict) result Lwt.t

merge ~into:t ?max_head ?n commit merges the contents of the commit associated to commit into t. max_depth is the maximal depth used for getting the lowest common ancestor. n is the maximum number of lowest common ancestors. If present, max_depth or n are used to limit the search space of the lowest common ancestors (see lcas).

OCaml

Innovation. Community. Security.