The type for remote status.
val fetch : db -> ?depth:int -> Irmin__S.remote -> (status, [ `Msg of string ]) Stdlib.result Lwt.t
fetch t ?depth r
populate the local store t
with objects for the remote store r
, using t
's current branch. The depth
parameter limits the history depth. Return `Empty
if either the local or remote store do not have a valid head.
Same as fetch
but raise Invalid_argument
if either the local or remote store do not have a valid head.
The type for pull errors.
val pp_pull_error : pull_error Fmt.t
pp_push_error
pretty-prints pull errors.
val pull : db -> ?depth:int -> Irmin__S.remote -> [ `Merge of Info.f | `Set ] -> (status, pull_error) Stdlib.result Lwt.t
pull t ?depth r s
is similar to fetch but it also updates t
's current branch. s
is the update strategy:
`Merge
usesHead.merge
. Can return a conflict.`Set
usesS.Head.set
.
Same as pull
but raise Invalid_arg
in case of conflict.
val pp_push_error : push_error Fmt.t
pp_push_error
pretty-prints push errors.
val push : db -> ?depth:int -> Irmin__S.remote -> (status, push_error) Stdlib.result Lwt.t
push t ?depth r
populates the remote store r
with objects from the current store t
, using t
's current branch. If b
is t
's current branch, push
also updates the head of b
in r
to be the same as in t
.
Note: Git semantics is to update b
only if the new head if more recent. This is not the case in Irmin.