private @NotNull GitCompoundResult smartRollback(@NotNull Collection<? extends GitRepository> repositories) {
    LOG.info("Starting smart rollback...");
    final GitCompoundResult result = new GitCompoundResult(myProject);
    Collection<VirtualFile> roots = GitUtil.getRootsFromRepositories(repositories);
    GitSaveChangesPolicy saveMethod = GitVcsSettings.getInstance(myProject).getSaveChangesPolicy();
    GitPreservingProcess preservingProcess =
      new GitPreservingProcess(myProject, myGit, roots, GitBundle.message("merge.operation.name"), myBranchNameToMerge, saveMethod,
                               getIndicator(), () -> {
        for (GitRepository repository : repositories) result.append(repository, rollback(repository));
      });
    preservingProcess.execute();
    LOG.info("Smart rollback completed.");
    return result;
  }
private @NotNull GitCompoundResult smartRollback(@NotNull Collection<? extends GitRepository> repositories)