sig
  type t = [ `Git | `Hg ]
  val override_kind : unit -> As_cmd.Vcs.t option
  val set_override_kind : As_cmd.Vcs.t option -> unit
  val override_exec : unit -> string option
  val set_override_exec : string option -> unit
  val exists : As_path.t -> As_cmd.Vcs.t -> bool As_cmd.result
  val find : As_path.t -> As_cmd.Vcs.t option As_cmd.result
  val get : As_path.t -> As_cmd.Vcs.t As_cmd.result
  val head : ?dirty:bool -> As_path.t -> As_cmd.Vcs.t -> string As_cmd.result
  val describe :
    ?dirty:bool -> As_path.t -> As_cmd.Vcs.t -> string As_cmd.result
end