let tags_file file =
let dir = Filename.dirname file in
let f = Filename.basename file in
let temp_file = Filename.temp_file "ocamlcvs" "log" in
let com = Printf.sprintf
"cd %s ; cvs log %s > %s"
(Filename.quote dir)
(Filename.quote f)
temp_file
in
let n = Sys.command com in
try
if n = 0 then
let revisions = read_tags temp_file in
delete_file temp_file ;
revisions
else
raise (Ocvs_types.CvsFailure (Ocvs_messages.error_exec com))
with
Failure s ->
delete_file temp_file ;
raise (Ocvs_types.CvsFailure s)