package git

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

PACK serializer implementation.

module Kind : sig ... end

This module represents the kind of a Git object - but only the kind, Kind.t does not have the Git value.

module type H = sig ... end

This module is the serialiser of the list of hunks in the PACK entry when we retrieve a delta-ified Git object. This encoder is a non-blocking encoder used in the same time than the Deflater - that means the content produced is always deflated.

module Hunk (Hash : sig ... end) : H with module Hash := Hash
module type ENTRY = sig ... end

The entry module. It used to able to manipulate the meta-data only needed by the delta-ification of the Git object (and avoid to de-serialize all of the Git object to compute the delta-ification).

module Entry (Hash : sig ... end) : ENTRY with module Hash := Hash
module type DELTA = sig ... end

This module is the engine to delta-ify Git objects together. The current implementation is a stop the world process which can not compute iteratively the delta-ification for some Git objects.

module Delta (Hash : sig ... end) (Entry : ENTRY with module Hash := Hash) : DELTA with module Hash := Hash and module Entry := Entry
module type P = sig ... end

Interface which describes the encoder of the PACK file.

module Pack (Hash : sig ... end) (Deflate : sig ... end) (Entry : ENTRY with module Hash := Hash) (Delta : DELTA with module Hash := Hash and module Entry := Entry) (Hunk : H with module Hash := Hash) : P with module Hash := Hash and module Deflate := Deflate and module Entry := Entry and module Delta := Delta and module Hunk := Hunk

The functor to make the PACK encoder by a specific hash implementation and a specific deflate algorithm.

module Stream (Hash : sig ... end) (Deflate : sig ... end) : sig ... end