Module Git.Store

Implementation of a Git stores.

This implementation is more complete than the memory back-end because firstly, Git was designed to be used on a file-system. Then, because for each operation, we let the client to control the memory consumption.

So we provide a more powerful API which let the user to use already allocated buffers outside this scope and process some I/O operations on pools.

module type Rs = sig ... end
module type Mj = sig ... end
type ('uid, 'major_uid, 'major) major = {
  1. pck_major_uid_of_uid : 'major -> 'uid -> 'major_uid;
  2. idx_major_uid_of_uid : 'major -> 'uid -> 'major_uid;
  3. uid_of_major_uid : 'major_uid -> 'uid;
}
module Make (Digestif : Digestif.S) (Mn : Loose_git.STORE with type +'a fiber = 'a Lwt.t and type uid = Digestif.t) (Mj : Mj with type +'a fiber = 'a Lwt.t) (Rs : Rs with type +'a fiber = 'a) : sig ... end