Module type Ezirmin.Repo

module type Repo = sig .. end


Repo operations



Repo provides operations on repositories.
type repo 
The type of repository handles. A repository contains a set of branches.
type branch 
The type of persistent branches.
val init : ?root:string -> ?bare:bool -> unit -> repo Lwt.t
Initialize and connect to the repository in a backend specific manner.


val master : repo -> branch Lwt.t
master repo fetches the master branch of the repository.
val get_branch : repo -> branch_name:string -> branch Lwt.t
get_branch repo b fetches the branch b by name. If branch b does not already exist, then the branch will be created and a handle to it returned.
val get_branch_name : branch -> string option Lwt.t
Return the branch name. Return None if the branch is not persistent.
val clone_force : branch -> string -> branch Lwt.t
clone_force b n clones the branch b naming the new branch n. If a branch named n exists, then that branch will be overwritten.
val merge : branch -> into:branch -> unit Lwt.t
merge w m merges branch w into m. Merge will always succeed. After the merge the branch w continues to exist.

History


val predecessors : repo -> branch -> branch list Lwt.t
Return the list of predecessors of the head of the branch.
val update_branch : branch -> set:branch -> unit Lwt.t
update_branch b s updates the head of the branch b to the head of the branch s.
module Commit: sig .. end

Watch


val install_listener : unit -> unit
Create a thread that actively polls for change. Prefer inotify if it works on your system.

Sync



Sync provides functionality to sync with remote repositories.
module Sync: sig .. end
module Store: Irmin.S 
Underlying Irmin store.