@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    Project project = e.getData(CommonDataKeys.PROJECT);
    if (project == null) return;
    if (ChangeListManager.getInstance(project).isFreezedWithNotification(null)) return;

    VcsHistorySession historySession = e.getData(VcsDataKeys.HISTORY_SESSION);
    if (historySession == null) return;
    VcsRevisionNumber currentRevisionNumber = historySession.getCurrentRevisionNumber();
    VcsFileRevision[] fileRevisions = e.getData(VcsDataKeys.VCS_FILE_REVISIONS);
    if (fileRevisions == null) return;
    VcsFileRevision selectedRevision = fileRevisions[0];
    FilePath filePath = e.getData(VcsDataKeys.FILE_PATH);
    if (filePath == null) return;
    VirtualFile virtualFile = e.getData(CommonDataKeys.VIRTUAL_FILE);
    if (virtualFile == null) return;

    if (currentRevisionNumber != null && selectedRevision != null) {
      DiffFromHistoryHandler diffHandler = ObjectUtils.notNull(e.getRequiredData(VcsDataKeys.HISTORY_PROVIDER).getHistoryDiffHandler(),
                                                               new StandardDiffFromHistoryHandler());
      diffHandler.showDiffForTwo(project, filePath,
                                 selectedRevision, new CurrentRevision(virtualFile, currentRevisionNumber));
    }
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)