static void executeOperation(@NotNull Project project,
                               @NotNull Collection<? extends VirtualFile> rootsToSave,
                               @NotNull @Nls(capitalization = Nls.Capitalization.Title) String operationTitle,
                               @NotNull ProgressIndicator indicator,
                               @NotNull Runnable operation) {
    for (VcsPreservingExecutor vcsPreservingExecutor : EP_NAME.getExtensionList()) {
      if (vcsPreservingExecutor.execute(project, rootsToSave, operationTitle, indicator, operation)) {
        return;
      }
    }
    // shouldn't be reachable
    throw new IllegalStateException();
  }
static void executeOperation(@NotNull Project project,
                               @NotNull Collection<? extends VirtualFile> rootsToSave,
                               @NotNull @Nls(capitalization = Nls.Capitalization.Title) String operationTitle,
                               @NotNull ProgressIndicator indicator,
                               @NotNull Runnable operation)