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