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_changeif- his already- t's head;
- Error `Rejectedif- his not in the strict future of- t'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 of- nand- max_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).