Module Vcs_git_provider

Vcs_git_provider is a helper library to build git providers for the Vcs library.

Given the ability to run a git process, Vcs_git_provider knows what command to run, how to parse its output and how to interpret its exit code to turn it into a typed result.

Vcs_git_provider is not meant to be used directly by a user. Rather it is one of the building blocks involved in creating a git provider for the Vcs library.

Vcs_git_provider has currently two instantiations as part of its distribution (packaged separately to keep the dependencies isolated).

We make some efforts to rely on stable and machine friendly output when one is available and documented in the git cli man pages, but this is not always possible, so the implementation uses some kind of best effort strategy. Also, to avoid running into git version issues, we're trying to rely on git commands that have been there for a while.

module Runtime : sig ... end

Defining the interface of a compatible runtime.

Providers of Vcs Traits

module Trait : sig ... end
module Make (Runtime : Runtime.S) : sig ... end

Create a provider based on a runtime.

Individual Providers

The rest of the modules are functors that are parametrized by your Runtime. Given the ability to run a git command line, this modules return a provider implementation for each of the traits defined by the Vcs library. The individual functors are exposed for convenience.

module Add : sig ... end

A provider implementation for Vcs.Trait.Add.

module Branch : sig ... end

A provider implementation for Vcs.Trait.Branch.

module Commit : sig ... end

A provider implementation for Vcs.Trait.Commit.

module Config : sig ... end

A provider implementation for Vcs.Trait.Config.

module Init : sig ... end

A provider implementation for Vcs.Trait.Init.

module Log : sig ... end

A provider implementation for Vcs.Trait.Log.

module Ls_files : sig ... end

A provider implementation for Vcs.Trait.Ls_files.

module Name_status : sig ... end

A provider implementation for Vcs.Trait.Name_status.

module Num_status : sig ... end

A provider implementation for Vcs.Trait.Num_status.

module Refs : sig ... end

A provider implementation for Vcs.Trait.Refs.

module Rev_parse : sig ... end

A provider implementation for Vcs.Trait.Rev_parse.

module Show : sig ... end

A provider implementation for Vcs.Trait.Show.

module Private : sig ... end