list t is the list of all the heads in local store. Similar to git rev-list --all.
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.
Same as find but raise Invalid_argument if the store does not have any contents.
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) Stdlib.result Lwt.tfast_forward t h is similar to update 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_changeifhis alreadyt's head;Error `Rejectedifhis not in the strict future oft's head.Error eif the history exploration has been cut before getting useful results. In that case. the operation can be retried using different parameters ofnandmax_depthto get better results.
Same as update_head but check that the value is test before updating to set. Use update or merge instead if possible.
val merge : into:t -> info:Irmin.Info.f -> ?max_depth:int -> ?n:int -> commit -> (unit, Irmin.Merge.conflict) Stdlib.result Lwt.tmerge ~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).