Merge changes Ib4128352,Ib6782160,I2c9d7259
* changes: SubmitStrategyListener: Add debug logs with commit status of all changes Move message for MISSING_DEPENDENCY into CommitMergeStatus enum MergeOp: Remove unused getProblems() method
This commit is contained in:
@@ -40,7 +40,7 @@ public enum CommitMergeStatus {
|
|||||||
SKIPPED_IDENTICAL_TREE(
|
SKIPPED_IDENTICAL_TREE(
|
||||||
"Marking change merged without cherry-picking to branch, as the resulting commit would be empty."),
|
"Marking change merged without cherry-picking to branch, as the resulting commit would be empty."),
|
||||||
|
|
||||||
MISSING_DEPENDENCY(""),
|
MISSING_DEPENDENCY("Depends on change that was not submitted."),
|
||||||
|
|
||||||
MANUAL_RECURSIVE_MERGE(
|
MANUAL_RECURSIVE_MERGE(
|
||||||
"The change requires a local merge to resolve.\n"
|
"The change requires a local merge to resolve.\n"
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ import com.github.rholder.retry.Attempt;
|
|||||||
import com.github.rholder.retry.RetryListener;
|
import com.github.rholder.retry.RetryListener;
|
||||||
import com.google.auto.value.AutoValue;
|
import com.google.auto.value.AutoValue;
|
||||||
import com.google.common.base.Joiner;
|
import com.google.common.base.Joiner;
|
||||||
import com.google.common.collect.ImmutableListMultimap;
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import com.google.common.collect.ImmutableSetMultimap;
|
import com.google.common.collect.ImmutableSetMultimap;
|
||||||
@@ -174,10 +173,6 @@ public class MergeOp implements AutoCloseable {
|
|||||||
return problems.isEmpty();
|
return problems.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
public ImmutableListMultimap<Change.Id, String> getProblems() {
|
|
||||||
return ImmutableListMultimap.copyOf(problems);
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<SubmitRecord> getSubmitRecords(Change.Id id) {
|
public List<SubmitRecord> getSubmitRecords(Change.Id id) {
|
||||||
// Use the cached submit records from the original ChangeData in the input
|
// Use the cached submit records from the original ChangeData in the input
|
||||||
// ChangeSet, which were checked earlier in the integrate process. Even in
|
// ChangeSet, which were checked earlier in the integrate process. Even in
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ package com.google.gerrit.server.submit;
|
|||||||
|
|
||||||
import com.google.common.base.CharMatcher;
|
import com.google.common.base.CharMatcher;
|
||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
|
import com.google.common.flogger.FluentLogger;
|
||||||
import com.google.gerrit.extensions.api.changes.SubmitInput;
|
import com.google.gerrit.extensions.api.changes.SubmitInput;
|
||||||
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
import com.google.gerrit.extensions.restapi.ResourceConflictException;
|
||||||
import com.google.gerrit.reviewdb.client.Change;
|
import com.google.gerrit.reviewdb.client.Change;
|
||||||
@@ -30,6 +31,8 @@ import java.util.Set;
|
|||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
|
|
||||||
public class SubmitStrategyListener implements BatchUpdateListener {
|
public class SubmitStrategyListener implements BatchUpdateListener {
|
||||||
|
private static final FluentLogger logger = FluentLogger.forEnclosingClass();
|
||||||
|
|
||||||
private final Collection<SubmitStrategy> strategies;
|
private final Collection<SubmitStrategy> strategies;
|
||||||
private final CommitStatus commitStatus;
|
private final CommitStatus commitStatus;
|
||||||
private final boolean failAfterRefUpdates;
|
private final boolean failAfterRefUpdates;
|
||||||
@@ -106,9 +109,11 @@ public class SubmitStrategyListener implements BatchUpdateListener {
|
|||||||
CodeReviewCommit commit = commitStatus.get(id);
|
CodeReviewCommit commit = commitStatus.get(id);
|
||||||
CommitMergeStatus s = commit != null ? commit.getStatusCode() : null;
|
CommitMergeStatus s = commit != null ? commit.getStatusCode() : null;
|
||||||
if (s == null) {
|
if (s == null) {
|
||||||
|
logger.atSevere().log("change %d: change not processed by merge strategy", id.get());
|
||||||
commitStatus.problem(id, "internal error: change not processed by merge strategy");
|
commitStatus.problem(id, "internal error: change not processed by merge strategy");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
logger.atFine().log("change %d: status for commit %s is %s", id.get(), commit.name(), s);
|
||||||
switch (s) {
|
switch (s) {
|
||||||
case CLEAN_MERGE:
|
case CLEAN_MERGE:
|
||||||
case CLEAN_REBASE:
|
case CLEAN_REBASE:
|
||||||
@@ -128,15 +133,12 @@ public class SubmitStrategyListener implements BatchUpdateListener {
|
|||||||
case CANNOT_REBASE_ROOT:
|
case CANNOT_REBASE_ROOT:
|
||||||
case NOT_FAST_FORWARD:
|
case NOT_FAST_FORWARD:
|
||||||
case EMPTY_COMMIT:
|
case EMPTY_COMMIT:
|
||||||
|
case MISSING_DEPENDENCY:
|
||||||
// TODO(dborowitz): Reformat these messages to be more appropriate for
|
// TODO(dborowitz): Reformat these messages to be more appropriate for
|
||||||
// short problem descriptions.
|
// short problem descriptions.
|
||||||
commitStatus.problem(id, CharMatcher.is('\n').collapseFrom(s.getMessage(), ' '));
|
commitStatus.problem(id, CharMatcher.is('\n').collapseFrom(s.getMessage(), ' '));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MISSING_DEPENDENCY:
|
|
||||||
commitStatus.problem(id, "depends on change that was not submitted");
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
commitStatus.problem(id, "unspecified merge failure: " + s);
|
commitStatus.problem(id, "unspecified merge failure: " + s);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -402,8 +402,8 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
|
|||||||
+ " due to the following problems:\n"
|
+ " due to the following problems:\n"
|
||||||
+ "Change "
|
+ "Change "
|
||||||
+ change3a.getChange().getId()
|
+ change3a.getChange().getId()
|
||||||
+ ": depends on change that"
|
+ ": Depends on change that"
|
||||||
+ " was not submitted");
|
+ " was not submitted.");
|
||||||
|
|
||||||
RevCommit tipbranch = getRemoteLog(project, "branch").get(0);
|
RevCommit tipbranch = getRemoteLog(project, "branch").get(0);
|
||||||
assertThat(tipbranch.getShortMessage()).isEqualTo(change1.getCommit().getShortMessage());
|
assertThat(tipbranch.getShortMessage()).isEqualTo(change1.getCommit().getShortMessage());
|
||||||
@@ -501,7 +501,7 @@ public class SubmitByMergeIfNecessaryIT extends AbstractSubmitByMerge {
|
|||||||
"Failed to submit 1 change due to the following problems:\n"
|
"Failed to submit 1 change due to the following problems:\n"
|
||||||
+ "Change "
|
+ "Change "
|
||||||
+ change3.getPatchSetId().getParentKey().get()
|
+ change3.getPatchSetId().getParentKey().get()
|
||||||
+ ": depends on change that was not submitted");
|
+ ": Depends on change that was not submitted.");
|
||||||
|
|
||||||
assertRefUpdatedEvents();
|
assertRefUpdatedEvents();
|
||||||
assertChangeMergedEvents();
|
assertChangeMergedEvents();
|
||||||
|
|||||||
Reference in New Issue
Block a user