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) {
|
public static List<PatchSetApproval> getApprovalsForCommit(final ReviewDb db, final CodeReviewCommit n) {
|
||||||
List<PatchSetApproval> approvalList = null;
|
|
||||||
try {
|
try {
|
||||||
approvalList =
|
List<PatchSetApproval> approvalList =
|
||||||
db.patchSetApprovals().byPatchSet(n.patchsetId).toList();
|
db.patchSetApprovals().byPatchSet(n.patchsetId).toList();
|
||||||
Collections.sort(approvalList, new Comparator<PatchSetApproval>() {
|
Collections.sort(approvalList, new Comparator<PatchSetApproval>() {
|
||||||
@Override
|
@Override
|
||||||
@@ -284,10 +283,11 @@ public class MergeUtil {
|
|||||||
return a.getGranted().compareTo(b.getGranted());
|
return a.getGranted().compareTo(b.getGranted());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
return approvalList;
|
||||||
} catch (OrmException e) {
|
} catch (OrmException e) {
|
||||||
log.error("Can't read approval records for " + n.patchsetId, 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) {
|
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.canCherryPick;
|
||||||
import static com.google.gerrit.server.git.MergeUtil.canFastForward;
|
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.getSubmitter;
|
||||||
import static com.google.gerrit.server.git.MergeUtil.hasMissingDependencies;
|
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.markCleanMerges;
|
||||||
import static com.google.gerrit.server.git.MergeUtil.mergeOneCommit;
|
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.Change;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSet;
|
import com.google.gerrit.reviewdb.client.PatchSet;
|
||||||
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
import com.google.gerrit.reviewdb.client.PatchSetApproval;
|
||||||
@@ -33,6 +35,7 @@ import com.google.gwtorm.server.OrmException;
|
|||||||
import org.eclipse.jgit.lib.ObjectId;
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -82,6 +85,11 @@ public class RebaseIfNecessary extends SubmitStrategy {
|
|||||||
rebaseChange.rebase(args.repo, args.rw, args.inserter,
|
rebaseChange.rebase(args.repo, args.rw, args.inserter,
|
||||||
n.patchsetId, n.change, getSubmitter(args.db, n.patchsetId)
|
n.patchsetId, n.change, getSubmitter(args.db, n.patchsetId)
|
||||||
.getAccountId(), newMergeTip, args.useContentMerge);
|
.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 =
|
newMergeTip =
|
||||||
(CodeReviewCommit) args.rw.parseCommit(ObjectId
|
(CodeReviewCommit) args.rw.parseCommit(ObjectId
|
||||||
.fromString(newPatchSet.getRevision().get()));
|
.fromString(newPatchSet.getRevision().get()));
|
||||||
|
|||||||
Reference in New Issue
Block a user