public class MergeUtil extends Object
Note: Unless otherwise specified, the methods in this class do
not flush ObjectInserter
s. Callers that want to read back objects before
flushing should use ObjectInserter.newReader()
. This is already the default behavior of
BatchUpdate
.
Modifier and Type | Class and Description |
---|---|
static interface |
MergeUtil.Factory |
Modifier and Type | Method and Description |
---|---|
boolean |
canCherryPick(MergeSorter mergeSorter,
org.eclipse.jgit.lib.Repository repo,
CodeReviewCommit mergeTip,
CodeReviewCommit.CodeReviewRevWalk rw,
CodeReviewCommit toMerge) |
boolean |
canFastForward(MergeSorter mergeSorter,
CodeReviewCommit mergeTip,
CodeReviewCommit.CodeReviewRevWalk rw,
CodeReviewCommit toMerge) |
boolean |
canMerge(MergeSorter mergeSorter,
org.eclipse.jgit.lib.Repository repo,
CodeReviewCommit mergeTip,
CodeReviewCommit toMerge) |
CodeReviewCommit |
createCherryPickFromCommit(org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig,
org.eclipse.jgit.revwalk.RevCommit mergeTip,
org.eclipse.jgit.revwalk.RevCommit originalCommit,
org.eclipse.jgit.lib.PersonIdent cherryPickCommitterIdent,
String commitMsg,
CodeReviewCommit.CodeReviewRevWalk rw,
int parentIndex,
boolean ignoreIdenticalTree,
boolean allowConflicts) |
String |
createCommitMessageOnSubmit(CodeReviewCommit n,
org.eclipse.jgit.revwalk.RevCommit mergeTip) |
String |
createCommitMessageOnSubmit(org.eclipse.jgit.revwalk.RevCommit n,
org.eclipse.jgit.revwalk.RevCommit mergeTip,
ChangeNotes notes,
PatchSet.Id id)
Creates a commit message for a change, which can be customized by plugins.
|
static String |
createConflictMessage(List<String> conflicts) |
static org.eclipse.jgit.revwalk.RevCommit |
createMergeCommit(org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig,
org.eclipse.jgit.revwalk.RevCommit mergeTip,
org.eclipse.jgit.revwalk.RevCommit originalCommit,
String mergeStrategy,
org.eclipse.jgit.lib.PersonIdent committerIndent,
String commitMsg,
org.eclipse.jgit.revwalk.RevWalk rw) |
static CodeReviewCommit |
findAnyMergedInto(CodeReviewCommit.CodeReviewRevWalk rw,
Iterable<CodeReviewCommit> commits,
CodeReviewCommit tip) |
Set<Change.Id> |
findUnmergedChanges(Set<Change.Id> expected,
CodeReviewCommit.CodeReviewRevWalk rw,
org.eclipse.jgit.revwalk.RevFlag canMergeFlag,
CodeReviewCommit oldTip,
CodeReviewCommit mergeTip,
Iterable<Change.Id> alreadyMerged) |
CodeReviewCommit |
getFirstFastForward(CodeReviewCommit mergeTip,
org.eclipse.jgit.revwalk.RevWalk rw,
List<CodeReviewCommit> toMerge) |
static org.eclipse.jgit.merge.ThreeWayMergeStrategy |
getMergeStrategy(org.eclipse.jgit.lib.Config cfg) |
boolean |
hasMissingDependencies(MergeSorter mergeSorter,
CodeReviewCommit toMerge) |
void |
markCleanMerges(org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.revwalk.RevFlag canMergeFlag,
CodeReviewCommit mergeTip,
Set<org.eclipse.jgit.revwalk.RevCommit> alreadyAccepted) |
CodeReviewCommit |
mergeOneCommit(org.eclipse.jgit.lib.PersonIdent author,
org.eclipse.jgit.lib.PersonIdent committer,
CodeReviewCommit.CodeReviewRevWalk rw,
org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig,
Branch.NameKey destBranch,
CodeReviewCommit mergeTip,
CodeReviewCommit n) |
String |
mergeStrategyName() |
static String |
mergeStrategyName(boolean useContentMerge,
boolean useRecursiveMerge) |
static org.eclipse.jgit.lib.ObjectId |
mergeWithConflicts(org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.lib.ObjectInserter ins,
org.eclipse.jgit.dircache.DirCache dc,
String oursName,
org.eclipse.jgit.revwalk.RevCommit ours,
String theirsName,
org.eclipse.jgit.revwalk.RevCommit theirs,
Map<String,org.eclipse.jgit.merge.MergeResult<? extends org.eclipse.jgit.diff.Sequence>> mergeResults) |
static org.eclipse.jgit.merge.Merger |
newMerger(org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig,
String strategyName) |
org.eclipse.jgit.merge.ThreeWayMerger |
newThreeWayMerger(org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig) |
static org.eclipse.jgit.merge.ThreeWayMerger |
newThreeWayMerger(org.eclipse.jgit.lib.ObjectInserter inserter,
org.eclipse.jgit.lib.Config repoConfig,
String strategyName) |
List<CodeReviewCommit> |
reduceToMinimalMerge(MergeSorter mergeSorter,
Collection<CodeReviewCommit> toSort) |
static org.eclipse.jgit.revwalk.RevCommit |
resolveCommit(org.eclipse.jgit.lib.Repository repo,
org.eclipse.jgit.revwalk.RevWalk rw,
String str) |
static boolean |
useRecursiveMerge(org.eclipse.jgit.lib.Config cfg) |
CodeReviewCommit |
writeMergeCommit(org.eclipse.jgit.lib.PersonIdent author,
org.eclipse.jgit.lib.PersonIdent committer,
CodeReviewCommit.CodeReviewRevWalk rw,
org.eclipse.jgit.lib.ObjectInserter inserter,
Branch.NameKey destBranch,
CodeReviewCommit mergeTip,
org.eclipse.jgit.lib.ObjectId treeId,
CodeReviewCommit n) |
public static boolean useRecursiveMerge(org.eclipse.jgit.lib.Config cfg)
public static org.eclipse.jgit.merge.ThreeWayMergeStrategy getMergeStrategy(org.eclipse.jgit.lib.Config cfg)
public CodeReviewCommit getFirstFastForward(CodeReviewCommit mergeTip, org.eclipse.jgit.revwalk.RevWalk rw, List<CodeReviewCommit> toMerge) throws IntegrationException
IntegrationException
public List<CodeReviewCommit> reduceToMinimalMerge(MergeSorter mergeSorter, Collection<CodeReviewCommit> toSort) throws IntegrationException
IntegrationException
public CodeReviewCommit createCherryPickFromCommit(org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig, org.eclipse.jgit.revwalk.RevCommit mergeTip, org.eclipse.jgit.revwalk.RevCommit originalCommit, org.eclipse.jgit.lib.PersonIdent cherryPickCommitterIdent, String commitMsg, CodeReviewCommit.CodeReviewRevWalk rw, int parentIndex, boolean ignoreIdenticalTree, boolean allowConflicts) throws org.eclipse.jgit.errors.MissingObjectException, org.eclipse.jgit.errors.IncorrectObjectTypeException, IOException, MergeIdenticalTreeException, MergeConflictException, MethodNotAllowedException
org.eclipse.jgit.errors.MissingObjectException
org.eclipse.jgit.errors.IncorrectObjectTypeException
IOException
MergeIdenticalTreeException
MergeConflictException
MethodNotAllowedException
public static org.eclipse.jgit.lib.ObjectId mergeWithConflicts(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.ObjectInserter ins, org.eclipse.jgit.dircache.DirCache dc, String oursName, org.eclipse.jgit.revwalk.RevCommit ours, String theirsName, org.eclipse.jgit.revwalk.RevCommit theirs, Map<String,org.eclipse.jgit.merge.MergeResult<? extends org.eclipse.jgit.diff.Sequence>> mergeResults) throws IOException
IOException
public static org.eclipse.jgit.revwalk.RevCommit createMergeCommit(org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig, org.eclipse.jgit.revwalk.RevCommit mergeTip, org.eclipse.jgit.revwalk.RevCommit originalCommit, String mergeStrategy, org.eclipse.jgit.lib.PersonIdent committerIndent, String commitMsg, org.eclipse.jgit.revwalk.RevWalk rw) throws IOException, MergeIdenticalTreeException, MergeConflictException
public String createCommitMessageOnSubmit(CodeReviewCommit n, org.eclipse.jgit.revwalk.RevCommit mergeTip)
public String createCommitMessageOnSubmit(org.eclipse.jgit.revwalk.RevCommit n, org.eclipse.jgit.revwalk.RevCommit mergeTip, ChangeNotes notes, PatchSet.Id id)
By default, adds footers to existing commit message based on the state of the change.
Plugins implementing ChangeMessageModifier
can modify the resulting commit message
arbitrarily.
n
- mergeTip
- notes
- id
- public boolean canMerge(MergeSorter mergeSorter, org.eclipse.jgit.lib.Repository repo, CodeReviewCommit mergeTip, CodeReviewCommit toMerge) throws IntegrationException
IntegrationException
public boolean canFastForward(MergeSorter mergeSorter, CodeReviewCommit mergeTip, CodeReviewCommit.CodeReviewRevWalk rw, CodeReviewCommit toMerge) throws IntegrationException
IntegrationException
public boolean canCherryPick(MergeSorter mergeSorter, org.eclipse.jgit.lib.Repository repo, CodeReviewCommit mergeTip, CodeReviewCommit.CodeReviewRevWalk rw, CodeReviewCommit toMerge) throws IntegrationException
IntegrationException
public boolean hasMissingDependencies(MergeSorter mergeSorter, CodeReviewCommit toMerge) throws IntegrationException
IntegrationException
public CodeReviewCommit mergeOneCommit(org.eclipse.jgit.lib.PersonIdent author, org.eclipse.jgit.lib.PersonIdent committer, CodeReviewCommit.CodeReviewRevWalk rw, org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig, Branch.NameKey destBranch, CodeReviewCommit mergeTip, CodeReviewCommit n) throws IntegrationException
IntegrationException
public CodeReviewCommit writeMergeCommit(org.eclipse.jgit.lib.PersonIdent author, org.eclipse.jgit.lib.PersonIdent committer, CodeReviewCommit.CodeReviewRevWalk rw, org.eclipse.jgit.lib.ObjectInserter inserter, Branch.NameKey destBranch, CodeReviewCommit mergeTip, org.eclipse.jgit.lib.ObjectId treeId, CodeReviewCommit n) throws IOException, org.eclipse.jgit.errors.MissingObjectException, org.eclipse.jgit.errors.IncorrectObjectTypeException
IOException
org.eclipse.jgit.errors.MissingObjectException
org.eclipse.jgit.errors.IncorrectObjectTypeException
public org.eclipse.jgit.merge.ThreeWayMerger newThreeWayMerger(org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig)
public String mergeStrategyName()
public static String mergeStrategyName(boolean useContentMerge, boolean useRecursiveMerge)
public static org.eclipse.jgit.merge.ThreeWayMerger newThreeWayMerger(org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig, String strategyName)
public static org.eclipse.jgit.merge.Merger newMerger(org.eclipse.jgit.lib.ObjectInserter inserter, org.eclipse.jgit.lib.Config repoConfig, String strategyName)
public void markCleanMerges(org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.revwalk.RevFlag canMergeFlag, CodeReviewCommit mergeTip, Set<org.eclipse.jgit.revwalk.RevCommit> alreadyAccepted) throws IntegrationException
IntegrationException
public Set<Change.Id> findUnmergedChanges(Set<Change.Id> expected, CodeReviewCommit.CodeReviewRevWalk rw, org.eclipse.jgit.revwalk.RevFlag canMergeFlag, CodeReviewCommit oldTip, CodeReviewCommit mergeTip, Iterable<Change.Id> alreadyMerged) throws IntegrationException
IntegrationException
public static CodeReviewCommit findAnyMergedInto(CodeReviewCommit.CodeReviewRevWalk rw, Iterable<CodeReviewCommit> commits, CodeReviewCommit tip) throws IOException
IOException
public static org.eclipse.jgit.revwalk.RevCommit resolveCommit(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevWalk rw, String str) throws BadRequestException, ResourceNotFoundException, IOException