1. Overview
  2. Docs



include Datakit_S.CLIENT
type t

A t is a connection to a Datakit server.

type error = private [>
  1. | `Already_exists

    Attempt to create something that already exists

  2. | `Does_not_exist

    Attempt to access something that does not exist

  3. | `Is_dir

    Attempt to use a directory as a file

  4. | `Not_dir

    Attempt to use a non-directory as a directory

  5. | `Not_file

    Attempt to use a non-file as a file


Attempt to use a non-symlink as a symlink

val pp_error : error Fmt.t

pp_error pretty-prints error values.

type 'a or_error = ('a, error) Result.result
module Tree : Datakit_S.READABLE_TREE with type 'a or_error := 'a or_error

A read-only tree of files, directories and symlinks.

module Commit : sig ... end
module Transaction : sig ... end

All changes to a branch are made in transactions. When a transaction is committed, it is merged with the current contents of the branch.

module Branch : sig ... end
val branches : t -> string list or_error Lwt.t

branches t is the current set of branches.

val remove_branch : t -> string -> unit or_error Lwt.t

remove_branch t name removes the branch named name (unlike Branch.remove, this method doesn't require creating the branch directory first).

val branch : t -> string -> Branch.t or_error Lwt.t

branch t name is the branch named name (which might not exist yet).

val commit : t -> string -> Commit.t

commit t hash is the commit with ID hash.

val tree : t -> string -> Tree.t

tree t id is the tree with ID id.

val fetch : t -> url:string -> branch:string -> Commit.t or_error Lwt.t

fetch t ~url ~branch fetches the given remote branch and returns its head commit.

val disconnect : t -> unit Lwt.t

disconnect t closes the connection. t cannot be used after this.

val connect : P9p.t -> t

connect c is a Datakit connection using the 9p connection c.