@Override
  protected void perform(@NotNull Project project, @NotNull List<VirtualFile> gitRoots, @NotNull VirtualFile defaultRoot) {
    if (ChangeListManager.getInstance(project).isFreezedWithNotification(GitBundle.message("stash.error.can.not.stash.changes.now"))) {
      return;
    }
    GitStashDialog dialog = new GitStashDialog(project, gitRoots, defaultRoot);
    if (!dialog.showAndGet()) return;

    VirtualFile selectedRoot = dialog.getSelectedRoot();
    String message = dialog.getMessage();
    boolean keepIndex = dialog.getKeepIndex();

    GitStashOperations.runStashInBackground(project, Collections.singleton(selectedRoot), root -> {
      return GitStashUtils.createStashHandler(project, root, keepIndex, message);
    });
  }
@Override
  protected void perform(@NotNull Project project, @NotNull List<VirtualFile> gitRoots, @NotNull VirtualFile defaultRoot)