@Override
  public void actionPerformed(@NotNull AnActionEvent e) {
    final Project project = e.getData(CommonDataKeys.PROJECT);
    if (project == null) return;
    final VcsKey vcsKey = e.getData(VcsDataKeys.VCS);
    if (vcsKey == null || !SvnVcs.getKey().equals(vcsKey)) return;
    final VcsFileRevision revision = e.getData(VcsDataKeys.VCS_FILE_REVISION);
    final VirtualFile revisionVirtualFile = e.getData(VcsDataKeys.VCS_VIRTUAL_FILE);
    if (revision == null || revisionVirtualFile == null) return;
    final SvnFileRevision svnFileRevision = (SvnFileRevision)revision;
    final Consumer<String> listener = e.getData(VcsDataKeys.REMOTE_HISTORY_CHANGED_LISTENER);
    SvnEditCommitMessageAction.askAndEditRevision(svnFileRevision.getRevision().getNumber(), svnFileRevision.getCommitMessage(),
                                                  svnFileRevision.getChangedRepositoryPath(), project,
                                                  newMessage -> {
                                                    svnFileRevision.setCommitMessage(newMessage);
                                                    if (listener != null) {
                                                      listener.consume(newMessage);
                                                    }
                                                    List<VcsFileRevision> revisions =
                                                      ProjectLevelVcsManager.getInstance(project).getVcsHistoryCache()
                                                        .getRevisions(VcsUtil.getFilePath(revisionVirtualFile), vcsKey);
                                                    for (VcsFileRevision fileRevision : revisions) {
                                                      if (!(fileRevision instanceof SvnFileRevision)) continue;
                                                      if (((SvnFileRevision)fileRevision).getRevision().getNumber() ==
                                                          svnFileRevision.getRevision().getNumber()) {
                                                        ((SvnFileRevision)fileRevision).setCommitMessage(newMessage);
                                                        break;
                                                      }
                                                    }
                                                  }, true);
  }
@Override
  public void actionPerformed(@NotNull AnActionEvent e)