private boolean doSmartMerge(final @NotNull Collection<? extends GitRepository> repositories) {
    final AtomicBoolean success = new AtomicBoolean();
    GitSaveChangesPolicy saveMethod = GitVcsSettings.getInstance(myProject).getSaveChangesPolicy();
    myPreservingProcess = new GitPreservingProcess(myProject, myGit, GitUtil.getRootsFromRepositories(repositories),
                                                   GitBundle.message("merge.operation.name"),
                                                   myBranchNameToMerge, saveMethod, getIndicator(),
                                                   () -> success.set(doMerge(repositories)));
    myPreservingProcess.execute(myConflictedRepositories::isEmpty);
    return success.get();
  }
private boolean doSmartMerge(final @NotNull Collection<? extends GitRepository> repositories)