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