static @NotNull Choice show(@NotNull Project project,
                     @NotNull List<? extends Change> changes,
                     @NotNull Collection<String> paths,
                     @NotNull @Nls(capitalization = Nls.Capitalization.Title) String operationTitle,
                     @Nullable @Nls(capitalization = Nls.Capitalization.Title) String forceButtonTitle) {
    JComponent fileBrowser = !changes.isEmpty()
                             ? new ChangesBrowserWithRollback(project, changes)
                             : new GitSimplePathsBrowser(project, paths);
    GitSmartOperationDialog dialog = new GitSmartOperationDialog(project, fileBrowser, operationTitle, forceButtonTitle);
    if (fileBrowser instanceof Disposable) Disposer.register(dialog.getDisposable(), (Disposable)fileBrowser);
    DialogManager.show(dialog);
    return Choice.fromDialogExitCode(dialog.getExitCode());
  }
static @NotNull Choice show(@NotNull Project project,
                     @NotNull List<? extends Change> changes,
                     @NotNull Collection<String> paths,
                     @NotNull @Nls(capitalization = Nls.Capitalization.Title) String operationTitle,
                     @Nullable @Nls(capitalization = Nls.Capitalization.Title) String forceButtonTitle)