in src/main/java/com/googlesource/gerrit/plugins/reviewnotes/CreateReviewNotes.java [127:168]
void createNotes(
String branch, ObjectId oldObjectId, ObjectId newObjectId, ProgressMonitor monitor)
throws IOException {
if (ObjectId.zeroId().equals(newObjectId)) {
return;
}
try (RevWalk rw = new RevWalk(git)) {
try {
RevCommit n = rw.parseCommit(newObjectId);
rw.markStart(n);
if (n.getParentCount() == 1 && n.getParent(0).equals(oldObjectId)) {
rw.markUninteresting(rw.parseCommit(oldObjectId));
} else {
markUninteresting(git, branch, rw, oldObjectId);
}
} catch (Exception e) {
logger.atSevere().withCause(e).log(e.getMessage());
return;
}
if (monitor == null) {
monitor = NullProgressMonitor.INSTANCE;
}
for (RevCommit c : rw) {
PatchSet ps = loadPatchSet(c, branch);
if (ps != null) {
ChangeNotes notes = notesFactory.create(project, ps.id().changeId());
ObjectId content = createNoteContent(notes, ps);
if (content != null) {
monitor.update(1);
getNotes().set(c, content);
getMessage().append("* ").append(c.getShortMessage()).append("\n");
}
} else {
logger.atFine().log(
"no note for this commit since it is a direct push %s", c.getName().substring(0, 7));
}
}
}
}