Module B00_vcs

type kind =
  1. | Git
  2. | Hg
val pp_kind : kind B0_std.Fmt.t
type t
val kind : t -> kind
val repo_dir : t -> B0_std.Fpath.t
val work_dir : t -> B0_std.Fpath.t
val repo_cmd : t -> B0_std.Cmd.t
val pp : t B0_std.Fmt.t
val find : ?dir:B0_std.Fpath.t -> unit -> (t option, string) result
val get : ?dir:B0_std.Fpath.t -> unit -> (t, string) result
type commit_ish = string
type commit_id = string
val head : commit_ish
val commit_id : t -> dirty_mark:bool -> commit_ish -> (commit_id, string) result
val commit_ptime_s : t -> commit_ish -> (int, string) result
val changes : t -> after:commit_ish -> until:commit_ish -> ((commit_id * string) list, string) result
val tracked_files : t -> tree_ish:string -> (B0_std.Fpath.t list, string) result
val commit_files : ?stdout:B0_std.Os.Cmd.stdo -> ?stderr:B0_std.Os.Cmd.stdo -> ?msg:string -> t -> B0_std.Fpath.t list -> (unit, string) result
val is_dirty : t -> (bool, string) result
val not_dirty : t -> (unit, string) result
val file_is_dirty : t -> B0_std.Fpath.t -> (bool, string) result
val checkout : ?and_branch:string -> t -> commit_ish -> (unit, string) result
val local_clone : t -> dir:B0_std.Fpath.t -> (t, string) result
type tag = string
val tags : t -> (tag list, string) result
val tag : ?msg:string -> t -> force:bool -> sign:bool -> commit_ish -> tag -> (unit, string) result
val delete_tag : t -> tag -> (unit, string) result
val describe : t -> dirty_mark:bool -> commit_ish -> (string, string) result
val latest_tag : t -> commit_ish -> (tag option, string) result
module Git : sig ... end
module Hg : sig ... end