Topkg.Vcs
Version control system repositories.
val pp_kind : Stdlib.Format.formatter -> kind -> unit
pp_kind ppf k
prints an unspecified representation of k
on ppf
.
The type for symbols resolving to a commit. The module uses "HEAD"
for specifying the current checkout; use this symbol even if the underlying VCS is `Hg
.
cmd r
is the base VCS command to use to act on r
.
Warning Prefer the functions below to remain VCS independent.
find ~dir ()
looks for a VCS repository in working directory dir
(not the repository directory like .git
, default is guessed automatically).
val pp : Stdlib.Format.formatter -> t -> unit
pp ppf r
prints an unspecified representation of r
on ppf
.
is_dirty r
is Ok true
iff the working tree of r
has uncommited changes.
not_dirty
is Ok ()
iff the working directory of r
is not dirty and an error that enjoins to stash or commit otherwise.
file_id_dirty r f
is Ok true
iff f
has uncommited changes.
head ~dirty r
is the HEAD commit identifier of the repository r
. If dirty
is true
(default), and indicator is appended to the commit identifier if the working tree of r
is_dirty
.
val commit_id : ?dirty:bool -> ?commit_ish:commit_ish -> t -> string result
commit_id ~dirty ~commit_ish r
is the object name (identifier) of commit_ish
(defaults to "HEAD"
). If commit_ish
is "HEAD"
and dirty
is true
(default) and indicator is appended to the identifier if the working tree is dirty.
val commit_ptime_s : ?commit_ish:commit_ish -> t -> int result
commit_ptime_s t ~commit_ish
is the POSIX time in seconds of commit commit_ish
(defaults to "HEAD"
) of repository r
.
val describe : ?dirty:bool -> ?commit_ish:commit_ish -> t -> string result
describe ~dirty ~commit_ish r
identifies commit_ish
(defaults to "HEAD"
) using tags from the repository r
. If commit_ish
is "HEAD"
and dirty
is true
(default) an indicator is appended to the identifier if the working tree is dirty.
val changes : ?until:commit_ish -> t -> after:commit_ish -> (string * string) list result
changes r ~after ~until
is the list of commits with their one-line message from commit-ish after
to commit-ish until
(defaults to "HEAD"
).
tracked_files ~tree_ish r
are the files tracked by the tree object tree_ish
(defaults to "HEAD"
).
val checkout : ?branch:string -> t -> commit_ish:commit_ish -> unit result
checkout r ~branch commit_ish
checks out commit_ish
. Checks out in a new branch branch
if provided.
commit_files r ~msg files
commits the file files
with message msg
(if unspecified the VCS should prompt).
val tag : ?force:bool -> ?sign:bool -> ?msg:string -> ?commit_ish:string ->
t -> string -> unit result
tag r ~force ~sign ~msg ~commit_ish t
tags commit_ish
with t
and message msg
(if unspecified the VCS should prompt). if sign
is true
(defaults to false
) signs the tag (`Git
repos only). If force
is true
(default to false
) doesn't fail if the tag already exists.