SubmitStrategy: Eagerly evaluate server ident
Calling get() multiple times may return skewed results, and can clutter code. Running submit strategies is already pretty expensive; don't worry about the cost of one more eager allocation. Change-Id: I7b0b74ab376656f7e48d6343162af0a86765201a
This commit is contained in:
@@ -150,7 +150,7 @@ public class CherryPick extends SubmitStrategy {
|
||||
args.mergeUtil.createCherryPickCommitMessage(toMerge);
|
||||
|
||||
PersonIdent committer = args.caller.newCommitterIdent(
|
||||
ctx.getWhen(), args.serverIdent.get().getTimeZone());
|
||||
ctx.getWhen(), args.serverIdent.getTimeZone());
|
||||
try {
|
||||
newCommit = args.mergeUtil.createCherryPickFromCommit(
|
||||
args.repo, args.inserter, mergeTip.getCurrentTip(), toMerge,
|
||||
@@ -230,8 +230,7 @@ public class CherryPick extends SubmitStrategy {
|
||||
if (args.rw.isMergedInto(mergeTip.getCurrentTip(), toMerge)) {
|
||||
mergeTip.moveTipTo(toMerge, toMerge);
|
||||
} else {
|
||||
PersonIdent myIdent =
|
||||
new PersonIdent(args.serverIdent.get(), ctx.getWhen());
|
||||
PersonIdent myIdent = new PersonIdent(args.serverIdent, ctx.getWhen());
|
||||
CodeReviewCommit result = args.mergeUtil.mergeOneCommit(myIdent,
|
||||
myIdent, args.repo, args.rw, args.inserter,
|
||||
args.canMergeFlag, args.destBranch, mergeTip.getCurrentTip(),
|
||||
|
@@ -43,11 +43,10 @@ public class MergeAlways extends SubmitStrategy {
|
||||
}
|
||||
while (!sorted.isEmpty()) {
|
||||
CodeReviewCommit mergedFrom = sorted.remove(0);
|
||||
PersonIdent serverIdent = args.serverIdent.get();
|
||||
PersonIdent caller = args.caller.newCommitterIdent(
|
||||
serverIdent.getWhen(), serverIdent.getTimeZone());
|
||||
args.serverIdent.getWhen(), args.serverIdent.getTimeZone());
|
||||
CodeReviewCommit newTip =
|
||||
args.mergeUtil.mergeOneCommit(caller, serverIdent,
|
||||
args.mergeUtil.mergeOneCommit(caller, args.serverIdent,
|
||||
args.repo, args.rw, args.inserter, args.canMergeFlag,
|
||||
args.destBranch, mergeTip.getCurrentTip(), mergedFrom);
|
||||
mergeTip.moveTipTo(newTip, mergedFrom);
|
||||
|
@@ -49,11 +49,10 @@ public class MergeIfNecessary extends SubmitStrategy {
|
||||
// For every other commit do a pair-wise merge.
|
||||
while (!sorted.isEmpty()) {
|
||||
CodeReviewCommit mergedFrom = sorted.remove(0);
|
||||
PersonIdent serverIdent = args.serverIdent.get();
|
||||
PersonIdent caller = args.caller.newCommitterIdent(
|
||||
serverIdent.getWhen(), serverIdent.getTimeZone());
|
||||
args.serverIdent.getWhen(), args.serverIdent.getTimeZone());
|
||||
branchTip =
|
||||
args.mergeUtil.mergeOneCommit(caller, serverIdent,
|
||||
args.mergeUtil.mergeOneCommit(caller, args.serverIdent,
|
||||
args.repo, args.rw, args.inserter, args.canMergeFlag,
|
||||
args.destBranch, branchTip, mergedFrom);
|
||||
mergeTip.moveTipTo(branchTip, mergedFrom);
|
||||
|
@@ -38,7 +38,6 @@ import com.google.gerrit.server.project.NoSuchChangeException;
|
||||
import com.google.gwtorm.server.OrmException;
|
||||
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
@@ -164,7 +163,7 @@ public class RebaseIfNecessary extends SubmitStrategy {
|
||||
// Racy read of patch set is ok; see comments in RebaseChangeOp.
|
||||
args.db.patchSets().get(toMerge.getPatchsetId()),
|
||||
mergeTip.getCurrentTip().name())
|
||||
.setCommitterIdent(args.serverIdent.get())
|
||||
.setCommitterIdent(args.serverIdent)
|
||||
.setRunHooks(false)
|
||||
.setValidatePolicy(CommitValidators.Policy.NONE);
|
||||
try {
|
||||
@@ -243,12 +242,11 @@ public class RebaseIfNecessary extends SubmitStrategy {
|
||||
mergeTip.moveTipTo(toMerge, toMerge);
|
||||
acceptMergeTip(mergeTip);
|
||||
} else {
|
||||
PersonIdent myIdent = args.serverIdent.get();
|
||||
// TODO(dborowitz): Can't use repo from ctx due to canMergeFlag.
|
||||
CodeReviewCommit newTip = args.mergeUtil.mergeOneCommit(
|
||||
myIdent, myIdent, args.repo, args.rw, args.inserter,
|
||||
args.canMergeFlag, args.destBranch, mergeTip.getCurrentTip(),
|
||||
toMerge);
|
||||
args.serverIdent, args.serverIdent, args.repo, args.rw,
|
||||
args.inserter, args.canMergeFlag, args.destBranch,
|
||||
mergeTip.getCurrentTip(), toMerge);
|
||||
mergeTip.moveTipTo(newTip, toMerge);
|
||||
}
|
||||
args.mergeUtil.markCleanMerges(args.rw, args.canMergeFlag,
|
||||
|
@@ -30,7 +30,6 @@ import com.google.gerrit.server.git.MergeSorter;
|
||||
import com.google.gerrit.server.git.MergeTip;
|
||||
import com.google.gerrit.server.git.MergeUtil;
|
||||
import com.google.gerrit.server.project.ChangeControl;
|
||||
import com.google.inject.Provider;
|
||||
|
||||
import org.eclipse.jgit.lib.ObjectInserter;
|
||||
import org.eclipse.jgit.lib.PersonIdent;
|
||||
@@ -52,7 +51,7 @@ import java.util.Set;
|
||||
*/
|
||||
public abstract class SubmitStrategy {
|
||||
static class Arguments {
|
||||
protected final Provider<PersonIdent> serverIdent;
|
||||
protected final PersonIdent serverIdent;
|
||||
protected final ReviewDb db;
|
||||
protected final BatchUpdate.Factory batchUpdateFactory;
|
||||
protected final ChangeControl.GenericFactory changeControlFactory;
|
||||
@@ -68,7 +67,7 @@ public abstract class SubmitStrategy {
|
||||
protected final MergeSorter mergeSorter;
|
||||
protected final IdentifiedUser caller;
|
||||
|
||||
Arguments(Provider<PersonIdent> serverIdent, ReviewDb db,
|
||||
Arguments(PersonIdent serverIdent, ReviewDb db,
|
||||
BatchUpdate.Factory batchUpdateFactory,
|
||||
ChangeControl.GenericFactory changeControlFactory, Repository repo,
|
||||
CodeReviewRevWalk rw, ObjectInserter inserter, RevFlag canMergeFlag,
|
||||
|
@@ -86,7 +86,7 @@ public class SubmitStrategyFactory {
|
||||
throws IntegrationException, NoSuchProjectException {
|
||||
ProjectState project = getProject(destBranch);
|
||||
SubmitStrategy.Arguments args = new SubmitStrategy.Arguments(
|
||||
myIdent, db, batchUpdateFactory, changeControlFactory,
|
||||
myIdent.get(), db, batchUpdateFactory, changeControlFactory,
|
||||
repo, rw, inserter, canMergeFlag, alreadyAccepted,
|
||||
destBranch,approvalsUtil, mergeUtilFactory.create(project), caller);
|
||||
switch (submitType) {
|
||||
|
Reference in New Issue
Block a user