MergeTip: Extract null-safe factory method
Change-Id: I3cc331050732f28b5341384f729f48cfb0311131
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package com.google.gerrit.server.git;
|
||||
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.gerrit.common.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
@@ -23,6 +24,14 @@ import java.util.Map;
|
||||
* Class describing a merge tip during merge operation.
|
||||
*/
|
||||
public class MergeTip {
|
||||
public static MergeTip from(@Nullable CodeReviewCommit initial,
|
||||
Collection<CodeReviewCommit> toMerge) {
|
||||
if (initial == null) {
|
||||
return null;
|
||||
}
|
||||
return new MergeTip(initial, toMerge);
|
||||
}
|
||||
|
||||
private CodeReviewCommit branchTip;
|
||||
private Map<String,String> mergeResults;
|
||||
|
||||
@@ -30,7 +39,8 @@ public class MergeTip {
|
||||
* @param initial Tip before the merge operation.
|
||||
* @param toMerge List of CodeReview commits to be merged in merge operation.
|
||||
*/
|
||||
public MergeTip(CodeReviewCommit initial, Collection<CodeReviewCommit> toMerge) {
|
||||
private MergeTip(CodeReviewCommit initial,
|
||||
Collection<CodeReviewCommit> toMerge) {
|
||||
this.mergeResults = Maps.newHashMap();
|
||||
this.branchTip = initial;
|
||||
// Assume fast-forward merge until opposite is proven.
|
||||
|
@@ -66,8 +66,7 @@ public class CherryPick extends SubmitStrategy {
|
||||
@Override
|
||||
protected MergeTip _run(CodeReviewCommit branchTip,
|
||||
Collection<CodeReviewCommit> toMerge) throws MergeException {
|
||||
MergeTip mergeTip = branchTip != null
|
||||
? new MergeTip(branchTip, toMerge) : null;
|
||||
MergeTip mergeTip = MergeTip.from(branchTip, toMerge);
|
||||
List<CodeReviewCommit> sorted = CodeReviewCommit.ORDER.sortedCopy(toMerge);
|
||||
while (!sorted.isEmpty()) {
|
||||
CodeReviewCommit n = sorted.remove(0);
|
||||
@@ -90,7 +89,7 @@ public class CherryPick extends SubmitStrategy {
|
||||
|
||||
private MergeTip cherryPickUnbornRoot(CodeReviewCommit n) {
|
||||
// The branch is unborn. Take fast-forward resolution to create the branch.
|
||||
MergeTip mergeTip = new MergeTip(n, Lists.newArrayList(n));
|
||||
MergeTip mergeTip = MergeTip.from(n, Lists.newArrayList(n));
|
||||
n.setStatusCode(CommitMergeStatus.CLEAN_MERGE);
|
||||
return mergeTip;
|
||||
}
|
||||
|
@@ -31,7 +31,7 @@ public class FastForwardOnly extends SubmitStrategy {
|
||||
@Override
|
||||
protected MergeTip _run(final CodeReviewCommit branchTip,
|
||||
final Collection<CodeReviewCommit> toMerge) throws MergeException {
|
||||
MergeTip mergeTip = new MergeTip(branchTip, toMerge);
|
||||
MergeTip mergeTip = MergeTip.from(branchTip, toMerge);
|
||||
List<CodeReviewCommit> sorted = args.mergeUtil.reduceToMinimalMerge(
|
||||
args.mergeSorter, toMerge);
|
||||
final CodeReviewCommit newMergeTipCommit =
|
||||
|
@@ -35,10 +35,10 @@ public class MergeAlways extends SubmitStrategy {
|
||||
if (branchTip == null) {
|
||||
// The branch is unborn. Take a fast-forward resolution to
|
||||
// create the branch.
|
||||
mergeTip = new MergeTip(sorted.get(0), toMerge);
|
||||
mergeTip = MergeTip.from(sorted.get(0), toMerge);
|
||||
sorted.remove(0);
|
||||
} else {
|
||||
mergeTip = new MergeTip(branchTip, toMerge);
|
||||
mergeTip = MergeTip.from(branchTip, toMerge);
|
||||
}
|
||||
while (!sorted.isEmpty()) {
|
||||
CodeReviewCommit mergedFrom = sorted.remove(0);
|
||||
|
@@ -36,10 +36,10 @@ public class MergeIfNecessary extends SubmitStrategy {
|
||||
if (branchTip == null) {
|
||||
// The branch is unborn. Take a fast-forward resolution to
|
||||
// create the branch.
|
||||
mergeTip = new MergeTip(sorted.get(0), toMerge);
|
||||
mergeTip = MergeTip.from(sorted.get(0), toMerge);
|
||||
branchTip = sorted.remove(0);
|
||||
} else {
|
||||
mergeTip = new MergeTip(branchTip, toMerge);
|
||||
mergeTip = MergeTip.from(branchTip, toMerge);
|
||||
branchTip =
|
||||
args.mergeUtil.getFirstFastForward(branchTip, args.rw, sorted);
|
||||
}
|
||||
|
@@ -58,7 +58,7 @@ public class RebaseIfNecessary extends SubmitStrategy {
|
||||
@Override
|
||||
protected MergeTip _run(final CodeReviewCommit branchTip,
|
||||
final Collection<CodeReviewCommit> toMerge) throws MergeException {
|
||||
MergeTip mergeTip = new MergeTip(branchTip, toMerge);
|
||||
MergeTip mergeTip = MergeTip.from(branchTip, toMerge);
|
||||
List<CodeReviewCommit> sorted = sort(toMerge);
|
||||
while (!sorted.isEmpty()) {
|
||||
CodeReviewCommit n = sorted.remove(0);
|
||||
|
Reference in New Issue
Block a user