@Override
  protected @NotNull GitUpdateResult doUpdate() {
    LOG.info("doUpdate ");

    MergeLineListener mergeLineListener = new MergeLineListener();
    GitUntrackedFilesOverwrittenByOperationDetector untrackedFilesDetector = new GitUntrackedFilesOverwrittenByOperationDetector(myRoot);

    String originalText = myProgressIndicator.getText();
    myProgressIndicator.setText(GitBundle.message("progress.text.merging.repository", GitUtil.mention(myRepository)));
    try {
      GitCommandResult result = myGit.merge(myRepository, myBranchPair.getTarget().getName(),
                                            asList("--no-stat", "-v"), mergeLineListener, untrackedFilesDetector,
                                            GitStandardProgressAnalyzer.createListener(myProgressIndicator));
      myProgressIndicator.setText(originalText);
      return result.success()
             ? GitUpdateResult.SUCCESS
             : handleMergeFailure(mergeLineListener, untrackedFilesDetector, result);
    }
    catch (ProcessCanceledException pce) {
      cancel();
      return GitUpdateResult.CANCEL;
    }
  }
@Override
  protected @NotNull GitUpdateResult doUpdate()