Module Git

module Error : sig ... end
module Helper : sig ... end

The Helper module should mnot be used by the client but only by maintainers of ocaml-git. It provides useful functions to interact with any I/O operations.

module Blob : sig ... end

A Git Blob object.

module Commit : sig ... end

A Git Commit object.

module Tree : sig ... end

A Git Tree object.

module Tag : sig ... end

A Git Tag object.

module Reference : sig ... end

The Git Reference module.

module User : sig ... end
module Value : sig ... end

The Value module which represents the Git object.

module Fanout : sig ... end

Implementation of a fanout table (which orders value like the IDX file).

module Bucket : sig ... end

A bucket is a simple option array to contain something. When the bucket is full and you try to add a new value, we erase the oldest one.

module Traverse_bfs : sig ... end
module Gc : sig ... end
module Object_graph : sig ... end
module Negociator : sig ... end
module Revision : sig ... end
module Capability : sig ... end

Capabilities module.

module Sync : sig ... end

The synchronization commands to a git repository.

module Smart : sig ... end
module Loose : sig ... end
module Pack_info : sig ... end
module Pack_engine : sig ... end
module Packed_refs : sig ... end
module Pack : sig ... end

PACK serializer implementation.

module Unpack : sig ... end

Decoder of the PACK file.

module Index_pack : sig ... end

Index pack implementation (serialization/unserialization).

module Mem : sig ... end

The memory back-end of Git.

module Store : sig ... end

Implementation of a Git stores.

module Inflate : sig ... end
module Deflate : sig ... end
module Buffer : sig ... end

An implementation of the Buffer module but with Cstruct.t.

module Hash : sig ... end
module Gri : sig ... end
module Tcp : sig ... end
module Path : sig ... end

Purpose of this module is little bit hard to understand. Indeed, in the previous version of ocaml-git, we used Fpath to have a good abstraction of path in UNIX and Windows systems. However, Git keeps in some ways (INDEX file specially) the UNIX path semantic (tree and reference use it too). So, Path is an abstraction (Git-path) to keep UNIX path semantic (and the separator "/"). However, we used it in few cases.

module type FILE = sig ... end
module type MAPPER = sig ... end
module type DIR = sig ... end
module type FS = sig ... end
module type DIGEST = sig ... end
module type HASH = sig ... end
module type S = sig ... end