private static boolean createEmptyGitRepository(
     @NotNull Project project, @NotNull VirtualFile root, @NotNull ProgressIndicator indicator) {
   final GitLineHandler h = new GitLineHandler(project, root, GitCommand.INIT);
   GitHandlerUtil.runInCurrentThread(
       h, indicator, true, GitBundle.getString("initializing.title"));
   if (!h.errors().isEmpty()) {
     GitUIUtil.showOperationErrors(project, h.errors(), "git init");
     LOG.info("Failed to create empty git repo: " + h.errors());
     return false;
   }
   GitInit.refreshAndConfigureVcsMappings(project, root, root.getPath());
   return true;
 }
  @Override
  protected void doOKAction() {
    VirtualFile root = getGitRoot();
    GitLineHandler h = handler();
    final AtomicBoolean conflict = new AtomicBoolean();

    h.addLineListener(
        new GitLineHandlerAdapter() {
          public void onLineAvailable(String line, Key outputType) {
            if (line.contains("Merge conflict")) {
              conflict.set(true);
            }
          }
        });
    int rc =
        GitHandlerUtil.doSynchronously(
            h, GitBundle.getString("unstash.unstashing"), h.printableCommandLine(), false);
    root.refresh(true, true);

    if (conflict.get()) {
      boolean conflictsResolved =
          new UnstashConflictResolver(myProject, root, getSelectedStash()).merge();
      LOG.info("loadRoot " + root + ", conflictsResolved: " + conflictsResolved);
    } else if (rc != 0) {
      GitUIUtil.showOperationErrors(myProject, h.errors(), h.printableCommandLine());
    }
    super.doOKAction();
  }