git

AuthorThomas Gazagnaire
LicenseISC
Homepagehttps://github.com/mirage/ocaml-git
Issue Trackerhttps://github.com/mirage/ocaml-git/issues
Maintainerthomas@gazagnaire.org
Dependencies
&alcotest
astring
base-unix
camlzip
channel
cmdliner1.0.0
cohttp
conduit
crc
fmt
hex
logs
lwt>= 2.4.7
mirage-flow
mirage-fs-unix>= 1.1.4
mirage-http
mirage-types-lwt
mstruct>= 1.3.1
mtime1.0.0
nocrypto
ocamlgraph
ocplib-endian
uri>= 1.3.12
Optional dependencies
|base-unix
camlzip
channel
cohttp
conduit
mirage-flow
mirage-http
mirage-types-lwt
nocrypto
Availableocaml-version >= "4.01.0"
PublishedMay 3, 2016
Source [http] https://github.com/mirage/ocaml-git/archive/1.8.0.tar.gz
15565eb2875b3c1d37875f3b2a1da753
StatisticsInstalled 5 times last month.
Edithttps://github.com/ocaml/opam-repository/tree/master/packages/git/git.1.8.0/opam

Git format and protocol in pure OCaml

Support for on-disk and in-memory Git stores. Can read and write all the Git objects: the usual blobs, trees, commits and tags but also the pack files, pack indexes and the index file (where the staging area lives).

All the objects share a consistent API, and convenience functions are provided to manipulate the different objects. For instance, it is possible to make a pack file position independant (as the Zlib compression might change the relative offsets between the packed objects), to generate pack indexes from pack files, or to expand the filesystem of a given commit.

The library comes with a command-line tool called ogit which shares a similar interface with git, but where all operations are mapped to the API exposed ocaml-git (and hence using only OCaml code).