# Module type OpamVCS.VCS

    module type VCS = sig .. end

Each backend should implement this signature.

    val exists : OpamTypes.repository -> bool

Test whether the given repository is correctly initialized.

    val init : OpamTypes.repository -> unit OpamProcess.job

Init a repository.

    val fetch : OpamTypes.repository -> unit OpamProcess.job

Fetch changes from upstream. This is supposed to put the changes in a staging area. Be aware that the remote URL might have been changed, so make sure to update accordingly.

    val reset : OpamTypes.repository -> unit OpamProcess.job

Reset the master branch of the repository to match the remote repository state.

    val diff : OpamTypes.repository -> bool OpamProcess.job

Check whether the staging area is empty. Returns true if not (eg. there is an update pending)

    val revision : OpamTypes.repository -> string OpamProcess.job

Return the HEAD revision.

    val versionned_files : OpamTypes.repository -> string list OpamProcess.job

Returns the list of files under version control