let log 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)
      f
      temp_file
  in
  let n = Sys.command com in
  if n = 0 then
    (
     let s = input_file_as_string temp_file in
     delete_file temp_file ;
     s
    )
  else
    (
     delete_file temp_file ;
     raise (Ocvs_types.CvsFailure (Ocvs_messages.error_exec com))
    )