@Override
 public void updateRepoImpl(RepoContext ctx) throws IntegrationException, IOException {
   // There are multiple parents, so this is a merge commit. We don't want
   // to rebase the merge as clients can't easily rebase their history with
   // that merge present and replaced by an equivalent merge with a different
   // first parent. So instead behave as though MERGE_IF_NECESSARY was
   // configured.
   MergeTip mergeTip = args.mergeTip;
   if (args.rw.isMergedInto(mergeTip.getCurrentTip(), toMerge)) {
     mergeTip.moveTipTo(toMerge, toMerge);
     acceptMergeTip(mergeTip);
   } else {
     CodeReviewCommit newTip =
         args.mergeUtil.mergeOneCommit(
             args.serverIdent,
             args.serverIdent,
             args.repo,
             args.rw,
             args.inserter,
             args.destBranch,
             mergeTip.getCurrentTip(),
             toMerge);
     mergeTip.moveTipTo(newTip, toMerge);
   }
   args.mergeUtil.markCleanMerges(
       args.rw, args.canMergeFlag, mergeTip.getCurrentTip(), args.alreadyAccepted);
   acceptMergeTip(mergeTip);
 }
 private void acceptMergeTip(MergeTip mergeTip) {
   args.alreadyAccepted.add(mergeTip.getCurrentTip());
 }