package opam-repository

  1. Overview
  2. Docs

Create a backend from a VCS implementation.

Parameters

module _ : VCS

Signature

val name : OpamUrl.backend
val pull_url : ?full_fetch:bool -> ?cache_dir:OpamTypes.dirname -> ?subpath:OpamTypes.subpath -> OpamTypes.dirname -> OpamHash.t option -> OpamTypes.url -> OpamTypes.filename option OpamTypes.download OpamProcess.job

pull_url ?full_fetch ?cache_dir ?subpath local_dir checksum remote_url pulls the contents of remote_url into local_dir.

Two kinds of results are allowed:

  • a single file was downloaded, in this case it is placed within local_dir and returned as Some filename
  • a directory was retrieved, in this case the contents of local_dir have been synchronised with its own, and None is returned

checksum can be used for retrieval but is NOT checked by this function.

If full_fetch is set to false, VCS repository is retrieved with shallow history (by default, full history). If cache_dir is given, the directory is used by VCS tool as a its cache directory. If subpath is given, only that subpath of the url is retrieved.

pull_repo_update fetches the remote update from url to the local repository at dirname, but does not apply it, allowing for further verifications. The file or directory returned is always temporary and should be cleaned up by the caller.

val repo_update_complete : OpamTypes.dirname -> OpamTypes.url -> unit OpamProcess.job

repo_update_complete dirname url finalizes the update of the repository after verification of the patch returned from pull_repo_update with Update_patch file is applied. Version control systems, e.g. Mercurial, that track the state of the working directory automatically use this to update internal caches.

Return the (optional) revision of a given repository. Only useful for VCS backends. Is not expected to work with pull_repo_update, which doesn't update the VCS commit information.

Like pull_url, except for locally-bound version control backends, where it should get the latest, uncommitted source. First, it performs a pull_url, then remove deleted files, and finally copy via rsync unversioned & modified-uncommitted files.

val get_remote_url : ?hash:string -> OpamTypes.dirname -> OpamTypes.url option OpamProcess.job

get_remote_url ?hash dirname return the distant url of repo dirname, \ if found. When hash is specified, it checks that this hash (branch or \ commit) is present in the distant repository and returns the url with \ this hash. If the hash is absent it returns the remote url with no hash.

OCaml

Innovation. Community. Security.