in src/main/java/com/googlesource/gerrit/plugins/batch/util/MergeBuilder.java [130:146]
public ObjectId build(Repository repo) throws IOException, MergeConflictException {
try (RevWalk revWalk = new RevWalk(repo)) {
RevCommit firstParentCommit = revWalk.lookupCommit(firstParent);
RevCommit secondParentCommit = revWalk.lookupCommit(secondParent);
if (revWalk.isMergedInto(secondParentCommit, firstParentCommit)) {
return firstParent; // already up to date
}
if (fastForwardMode != FastForwardMode.NO_FF
&& revWalk.isMergedInto(firstParentCommit, secondParentCommit)) {
return secondParent; // Fast forward merge
}
if (fastForwardMode == FastForwardMode.FF_ONLY) {
throw new MergeConflictException("Merge aborted"); // because not FF
}
return merge(repo, revWalk);
}
}