Improve logs about submittability
Change-Id: I3d169e96c0095bd6e40f6bff2902ebb0a533ac6b
diff --git a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
index fcd4b9b..8a3147f 100644
--- a/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
+++ b/src/main/java/com/criteo/gerrit/plugins/automerge/AutomaticMerger.java
@@ -181,12 +181,9 @@
throws OrmException, RestApiException, NoSuchChangeException, IOException, UpdateException {
if (atomicityHelper.isSubmittable(change.project, change.number)) {
if (atomicityHelper.isAtomicReview(change)) {
- log.info(
- String.format(
- "Change %d is submittable. Will try to merge all related changes.", change.number));
attemptToMergeAtomic(change);
} else {
- log.info(String.format("Change %d is submittable. Submitting ...", change.number));
+ log.info("Submitting non-atomic change {}...", change.number);
atomicityHelper.mergeReview(change.project, change.number);
}
}
@@ -224,29 +221,29 @@
.query("status: open AND topic: " + change.topic)
.withOption(ListChangesOption.CURRENT_REVISION)
.get());
- boolean submittable = true;
- boolean mergeable = true;
for (final ChangeInfo info : related) {
- if (!info.mergeable) {
- mergeable = false;
- }
- boolean passesPrologRules = atomicityHelper.isSubmittable(info.project, info._number);
- boolean dependsOnNonMergedCommit = atomicityHelper.hasDependentReview(info.project, info._number);
- if (!passesPrologRules || dependsOnNonMergedCommit) {
- submittable = false;
+ if (!atomicityHelper.isSubmittable(info.project, info._number)) {
+ log.info("Change {} is not submittable because same topic change {} has not all approvals.", change.number, info._number);
+ return;
}
}
- if (submittable) {
- if (mergeable) {
- log.debug(String.format("Change %d is mergeable", change.number));
- for (final ChangeInfo info : related) {
- atomicityHelper.mergeReview(info.project, info._number);
+ for (final ChangeInfo info : related) {
+ boolean dependsOnNonMergedCommit = atomicityHelper.hasDependentReview(info.project, info._number);
+ if (!info.mergeable || dependsOnNonMergedCommit) {
+ log.info("Change {} is not mergeable because same topic change {} {}", change.number, info._number,
+ !info.mergeable ? "is non mergeable" : "depends on a non merged commit.");
+ if (!info.mergeable) {
+ reviewUpdater.commentOnReview(change.project, change.number, AutomergeConfig.CANT_MERGE_COMMENT_FILE);
}
- } else {
- reviewUpdater.commentOnReview(change.project, change.number, AutomergeConfig.CANT_MERGE_COMMENT_FILE);
+ return;
}
}
+
+ log.info("Submitting atomic change {}...", change.number);
+ for (final ChangeInfo info : related) {
+ atomicityHelper.mergeReview(info.project, info._number);
+ }
}
private void processNewAtomicPatchSet(Change change) {