method private differences_between selection () =
      match selection with
        [] -> ()
      | file :: _ ->
          let filename = file.Ocvs_types.cvs_file in
          let f () =
            match self#select_revision filename with
              None -> ()
            | Some rev ->
                match self#select_revision filename with
                  None -> ()
                | Some rev2 ->
                    let (diffs, archive) = cvs#cvs_diff_file
                        ~rev: rev ~rev2: rev2 filename
                    in
                    let temp_file = cvs#rcs_revision rev2 archive in
                    Ocamlcvs.Diffs.display_diffs
                      ~on_close: (fun () -> Ocvs_commands.delete_file temp_file)
                      ~title:
                      (filename^" : "^
                       (Ocamlcvs.Revisions.string_of_revision_number rev.Ocvs_types.rev_number)^
                       " -> "^
                       (Ocamlcvs.Revisions.string_of_revision_number rev2.Ocvs_types.rev_number)
                      )
                      ~file: temp_file
                      diffs
          in
          handle_error f () ()