@Override
  public boolean cherryPick(@NotNull List<? extends VcsCommitMetadata> commits) {
    ProgressIndicator indicator = ProgressManager.getInstance().getProgressIndicator();
    if (indicator != null) {
      indicator.setIndeterminate(false);
    }
    IntRef cherryPickedCommitsCount = new IntRef(1);
    IntRef successfullyCherryPickedCommits = new IntRef(0);
    new GitApplyChangesProcess(myProject, commits, true,
                               GitBundle.message("cherry.pick.name"), GitBundle.message("cherry.pick.applied"),
                               (repository, commit, autoCommit, listeners) -> {
                                 GitCommandResult result = cherryPickSingleCommit(
                                   repository, commit, autoCommit, listeners,
                                   indicator, cherryPickedCommitsCount.get(), commits.size()
                                 );
                                 cherryPickedCommitsCount.inc();
                                 if (result.success() || isNothingToCommitMessage(result)) {
                                   successfullyCherryPickedCommits.inc();
                                 }
                                 return result;
                               },
                               new GitAbortOperationAction.CherryPick(),
                               result -> isNothingToCommitMessage(result),
                               (repository, commit) -> createCommitMessage(repository, commit),
                               true,
                               (repository, autoCommit) -> cancelCherryPick(repository, autoCommit),
                               GitBundle.message("activity.name.cherry.pick"), GitActivity.CherryPick).execute();
    return successfullyCherryPickedCommits.get() == commits.size();
  }
@Override
  public boolean cherryPick(@NotNull List<? extends VcsCommitMetadata> commits)