Irmin, a distributed database that follows the same design principles as Git
Module Irmin . Backend . Remote . None


module H : Type.S
module R : Type.S


include S with type commit = H.t and type branch = R.t and type endpoint = unit

Remote synchronization

type t

The type for store handles.

type commit = H.t

The type for store heads.

type branch = R.t

The type for branch IDs.

type endpoint = unit

The type for sync endpoints.

val fetch : t -> ?depth:int -> endpoint -> branch -> ( commit option, [ `Msg of string ] ) result Lwt.t

fetch t uri fetches the contents of the remote store located at uri into the local store t. Return the head of the remote branch with the same name, which is now in the local store. No_head means no such branch exists.

val push : t -> ?depth:int -> endpoint -> branch -> ( unit, [ `Msg of string | `Detached_head ] ) result Lwt.t

push t uri pushes the contents of the local store t into the remote store located at uri.

val v : 'a -> t Lwt.t

Create a remote store handle.