Merge "Copy approvals to new patch set when change is rebased on submit"
This commit is contained in:
@@ -274,9 +274,8 @@ public class MergeUtil {
|
||||
}
|
||||
|
||||
public static List<PatchSetApproval> getApprovalsForCommit(final ReviewDb db, final CodeReviewCommit n) {
|
||||
List<PatchSetApproval> approvalList = null;
|
||||
try {
|
||||
approvalList =
|
||||
List<PatchSetApproval> approvalList =
|
||||
db.patchSetApprovals().byPatchSet(n.patchsetId).toList();
|
||||
Collections.sort(approvalList, new Comparator<PatchSetApproval>() {
|
||||
@Override
|
||||
@@ -284,10 +283,11 @@ public class MergeUtil {
|
||||
return a.getGranted().compareTo(b.getGranted());
|
||||
}
|
||||
});
|
||||
return approvalList;
|
||||
} catch (OrmException e) {
|
||||
log.error("Can't read approval records for " + n.patchsetId, e);
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return approvalList;
|
||||
}
|
||||
|
||||
private static boolean contains(List<FooterLine> footers, FooterKey key, String val) {
|
||||
|
||||
@@ -16,11 +16,13 @@ package com.google.gerrit.server.git;
|
||||
|
||||
import static com.google.gerrit.server.git.MergeUtil.canCherryPick;
|
||||
import static com.google.gerrit.server.git.MergeUtil.canFastForward;
|
||||
import static com.google.gerrit.server.git.MergeUtil.getApprovalsForCommit;
|
||||
import static com.google.gerrit.server.git.MergeUtil.getSubmitter;
|
||||
import static com.google.gerrit.server.git.MergeUtil.hasMissingDependencies;
|
||||
import static com.google.gerrit.server.git.MergeUtil.markCleanMerges;
|
||||
import static com.google.gerrit.server.git.MergeUtil.mergeOneCommit;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.gerrit.reviewdb.client.Change;
|
||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||
@@ -33,6 +35,7 @@ import com.google.gwtorm.server.OrmException;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -82,6 +85,11 @@ public class RebaseIfNecessary extends SubmitStrategy {
|
||||
rebaseChange.rebase(args.repo, args.rw, args.inserter,
|
||||
n.patchsetId, n.change, getSubmitter(args.db, n.patchsetId)
|
||||
.getAccountId(), newMergeTip, args.useContentMerge);
|
||||
List<PatchSetApproval> approvals = Lists.newArrayList();
|
||||
for (PatchSetApproval a : getApprovalsForCommit(args.db, n)) {
|
||||
approvals.add(new PatchSetApproval(newPatchSet.getId(), a));
|
||||
}
|
||||
args.db.patchSetApprovals().insert(approvals);
|
||||
newMergeTip =
|
||||
(CodeReviewCommit) args.rw.parseCommit(ObjectId
|
||||
.fromString(newPatchSet.getRevision().get()));
|
||||
|
||||
Reference in New Issue
Block a user