method cvs_differences_between =
      match self#selection with
        [] -> ()
      |        file :: _ ->
          match self#cvs_select_revision file with
            None -> ()
          | Some rev ->
              match self#cvs_select_revision file with
                None -> ()
              | Some rev2 ->
                  try
                    let filename = (behav#cvs_info_of_t file).Ocvs_types.cvs_file in
                    let (diffs, archive) = behav#cvs_diff_file
                        ~rev: rev ~rev2: rev2 filename
                    in
                    let temp_file = behav#rcs_revision rev2 archive in
                    let title = Printf.sprintf "%s : %s -> %s"
                        filename
                        (Ocvs_revision.string_of_revision_number rev.Ocvs_types.rev_number)
                        (Ocvs_revision.string_of_revision_number rev2.Ocvs_types.rev_number)
                    in
                    let w = Odiff_gui.diffs_window ~title ~file: temp_file diffs in
                    let _ = w#window#connect#destroy (fun () -> Ocvs_commands.delete_file temp_file) in
                    w#window#show ()
                  with
                    Failure s ->
                      GToolbox.message_box Ocvs_messages.error s