@Override public List<SubmitStrategyOp> buildOps(Collection<CodeReviewCommit> toMerge) throws IntegrationException { List<CodeReviewCommit> sorted = sort(toMerge); List<SubmitStrategyOp> ops = new ArrayList<>(sorted.size()); boolean first = true; while (!sorted.isEmpty()) { CodeReviewCommit n = sorted.remove(0); if (first && args.mergeTip.getInitialTip() == null) { ops.add(new RebaseUnbornRootOp(n)); } else if (n.getParentCount() == 0) { ops.add(new RebaseRootOp(n)); } else if (n.getParentCount() == 1) { ops.add(new RebaseOneOp(n)); } else { ops.add(new RebaseMultipleParentsOp(n)); } first = false; } return ops; }