Example usage for org.eclipse.jgit.lib CommitBuilder setParentIds

List of usage examples for org.eclipse.jgit.lib CommitBuilder setParentIds

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib CommitBuilder setParentIds.

Prototype

public void setParentIds(AnyObjectId parent1, AnyObjectId parent2) 

Source Link

Document

Set the parents of this commit.

Usage

From source file:com.google.gerrit.server.git.MergeUtil.java

License:Apache License

public CodeReviewCommit writeMergeCommit(PersonIdent author, PersonIdent committer, CodeReviewRevWalk rw,
        ObjectInserter inserter, RevFlag canMergeFlag, Branch.NameKey destBranch, CodeReviewCommit mergeTip,
        ObjectId treeId, CodeReviewCommit n)
        throws IOException, MissingObjectException, IncorrectObjectTypeException {
    final List<CodeReviewCommit> merged = new ArrayList<>();
    rw.resetRetain(canMergeFlag);/*from  w w  w .j  a  v a  2 s.  c  o m*/
    rw.markStart(n);
    rw.markUninteresting(mergeTip);
    CodeReviewCommit crc;
    while ((crc = rw.next()) != null) {
        if (crc.getPatchsetId() != null) {
            merged.add(crc);
        }
    }

    StringBuilder msgbuf = new StringBuilder().append(summarize(rw, merged));
    if (!R_HEADS_MASTER.equals(destBranch.get())) {
        msgbuf.append(" into ");
        msgbuf.append(destBranch.getShortName());
    }

    if (merged.size() > 1) {
        msgbuf.append("\n\n* changes:\n");
        for (final CodeReviewCommit c : merged) {
            rw.parseBody(c);
            msgbuf.append("  ");
            msgbuf.append(c.getShortMessage());
            msgbuf.append("\n");
        }
    }

    final CommitBuilder mergeCommit = new CommitBuilder();
    mergeCommit.setTreeId(treeId);
    mergeCommit.setParentIds(mergeTip, n);
    mergeCommit.setAuthor(author);
    mergeCommit.setCommitter(committer);
    mergeCommit.setMessage(msgbuf.toString());

    CodeReviewCommit mergeResult = rw.parseCommit(commit(inserter, mergeCommit));
    mergeResult.setControl(n.getControl());
    return mergeResult;
}