public boolean fastForwardMerge() {
    LOG.info("Trying fast-forward merge for " + myRoot);
    GitRepository repository = GitRepositoryManager.getInstance(myProject).getRepositoryForRoot(myRoot);
    if (repository == null) {
      LOG.error("Repository is null for " + myRoot);
      return false;
    }
    try {
      markStart(repository);
    }
    catch (VcsException e) {
      LOG.info("Couldn't mark start for repository " + repository, e);
      return false;
    }

    GitCommandResult result = myGit.merge(repository, getRemoteBranchToMerge(), Collections.singletonList("--ff-only"));

    try {
      markEnd(repository);
    }
    catch (VcsException e) {
      // this is not critical, and update has already happened,
      // so we just notify the user about problems with collecting the updated changes.
      LOG.info("Couldn't mark end for repository " + repository, e);
      VcsNotifier.getInstance(myProject).
        notifyMinorWarning(GitNotificationIdsHolder.COLLECT_UPDATED_CHANGES_ERROR,
                           GitBundle.message("notification.title.couldnt.collect.updated.files.info"),
                           GitBundle.message("notification.content.couldnt.collect.updated.files.info", repository));
    }
    return result.success();
  }
public boolean fastForwardMerge()