@Override
      public void run(@NotNull ProgressIndicator indicator) {
        try {
          HgCommandResult result = hgMergeCommand.mergeSynchronously();
          if (HgErrorUtil.isAncestorMergeError(result)) {
            //skip and notify
            VcsNotifier.getInstance(project)
              .notifyMinorWarning(MERGE_WITH_ANCESTOR_SKIPPED,
                                  HgBundle.message("action.hg4idea.merge.skipped.title", repositoryRoot.getPresentableName()),
                                  HgBundle.message("action.hg4idea.merge.skipped"));
            return;
          }
          new HgConflictResolver(project, updatedFiles).resolve(repositoryRoot);
          if (!HgConflictResolver.hasConflicts(project, repositoryRoot) && onSuccessHandler != null) {
            onSuccessHandler.run();    // for example commit changes
          }
        }
        catch (VcsException exception) {
          if (exception.isWarning()) {
            VcsNotifier.getInstance(project).notifyWarning(MERGE_WARNING,
                                                           HgBundle.message("action.hg4idea.merge.warning"),
                                                           exception.getMessage());
          }
          else {
            VcsNotifier.getInstance(project).notifyError(MERGE_EXCEPTION,
                                                         HgBundle.message("action.hg4idea.merge.exception"),
                                                         exception.getMessage());
          }
        }
      }
@Override
      public void run(@NotNull ProgressIndicator indicator)