Package org.eclipse.jgit.api
Class MergeResult
java.lang.Object
org.eclipse.jgit.api.MergeResult
Encapsulates the result of a
MergeCommand
.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum
The status the merge resulted in. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ObjectId
private String
private Map<String,
ResolveMerger.MergeFailureReason> private ObjectId[]
private MergeResult.MergeStatus
private MergeStrategy
private ObjectId
-
Constructor Summary
ConstructorsConstructorDescriptionMergeResult
(List<String> checkoutConflicts) Creates a new result that represents a checkout conflict before the operation even started for real.MergeResult
(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults) Constructor for MergeResult.MergeResult
(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults, String description) Constructor for MergeResult.MergeResult
(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults, Map<String, ResolveMerger.MergeFailureReason> failingPaths, String description) Constructor for MergeResult. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addConflict
(String path, int[][] conflictingRanges) Add a conflictvoid
addConflict
(String path, MergeResult<?> lowLevelResult) Add a conflictgetBase()
Get the common baseReturns a list of paths that cause a checkout conflict.Returns information about the conflicts which occurred during aMergeCommand
.Returns a list of paths causing this merge to fail as returned byResolveMerger.getFailingPaths()
ObjectId[]
Get the commits which have been mergedGet the merge statusGet the object the head points at after the mergevoid
setConflicts
(Map<String, int[][]> conflicts) Set conflictstoString()
-
Field Details
-
mergedCommits
-
base
-
newHead
-
conflicts
-
mergeStatus
-
description
-
mergeStrategy
-
failingPaths
-
checkoutConflicts
-
-
Constructor Details
-
MergeResult
public MergeResult(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults) Constructor for MergeResult.- Parameters:
newHead
- the object the head points at after the mergebase
- the common base which was used to produce a content-merge. May benull
if the merge-result was produced without computing a common basemergedCommits
- all the commits which have been merged togethermergeStatus
- the status the merge resulted inmergeStrategy
- the usedMergeStrategy
lowLevelResults
- merge results as returned byResolveMerger.getMergeResults()
- Since:
- 2.0
-
MergeResult
public MergeResult(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults, String description) Constructor for MergeResult.- Parameters:
newHead
- the object the head points at after the mergebase
- the common base which was used to produce a content-merge. May benull
if the merge-result was produced without computing a common basemergedCommits
- all the commits which have been merged togethermergeStatus
- the status the merge resulted inmergeStrategy
- the usedMergeStrategy
lowLevelResults
- merge results as returned byResolveMerger.getMergeResults()
description
- a user friendly description of the merge result
-
MergeResult
public MergeResult(ObjectId newHead, ObjectId base, ObjectId[] mergedCommits, MergeResult.MergeStatus mergeStatus, MergeStrategy mergeStrategy, Map<String, MergeResult<?>> lowLevelResults, Map<String, ResolveMerger.MergeFailureReason> failingPaths, String description) Constructor for MergeResult.- Parameters:
newHead
- the object the head points at after the mergebase
- the common base which was used to produce a content-merge. May benull
if the merge-result was produced without computing a common basemergedCommits
- all the commits which have been merged togethermergeStatus
- the status the merge resulted inmergeStrategy
- the usedMergeStrategy
lowLevelResults
- merge results as returned byResolveMerger.getMergeResults()
failingPaths
- list of paths causing this merge to fail as returned byResolveMerger.getFailingPaths()
description
- a user friendly description of the merge result
-
MergeResult
Creates a new result that represents a checkout conflict before the operation even started for real.- Parameters:
checkoutConflicts
- the conflicting files
-
-
Method Details
-
getNewHead
Get the object the head points at after the merge- Returns:
- the object the head points at after the merge
-
getMergeStatus
Get the merge status- Returns:
- the status the merge resulted in
-
getMergedCommits
Get the commits which have been merged- Returns:
- all the commits which have been merged together
-
getBase
Get the common base- Returns:
- base the common base which was used to produce a content-merge.
May be
null
if the merge-result was produced without computing a common base
-
toString
-
setConflicts
Set conflicts- Parameters:
conflicts
- the conflicts to set
-
addConflict
Add a conflict- Parameters:
path
- path of the file to add a conflict forconflictingRanges
- the conflicts to set
-
addConflict
Add a conflict- Parameters:
path
- path of the file to add a conflict forlowLevelResult
- aMergeResult
-
getConflicts
Returns information about the conflicts which occurred during aMergeCommand
. The returned value maps the path of a conflicting file to a two-dimensional int-array of line-numbers telling where in the file conflict markers for which merged commit can be found.If the returned value contains a mapping "path"->[x][y]=z then this means
- the file with path "path" contains conflicts
- if y < "number of merged commits": for conflict number x in this file the chunk which was copied from commit number y starts on line number z. All numberings and line numbers start with 0.
- if y == "number of merged commits": the first non-conflicting line after conflict number x starts at line number z
Example code how to parse this data:
MergeResult m=...; Map<String, int[][]> allConflicts = m.getConflicts(); for (String path : allConflicts.keySet()) { int[][] c = allConflicts.get(path); System.out.println("Conflicts in file " + path); for (int i = 0; i < c.length; ++i) { System.out.println(" Conflict #" + i); for (int j = 0; j < (c[i].length) - 1; ++j) { if (c[i][j] >= 0) System.out.println(" Chunk for " + m.getMergedCommits()[j] + " starts on line #" + c[i][j]); } } }
- Returns:
- the conflicts or
null
if no conflict occurred
-
getFailingPaths
Returns a list of paths causing this merge to fail as returned byResolveMerger.getFailingPaths()
- Returns:
- the list of paths causing this merge to fail or
null
if no failure occurred
-
getCheckoutConflicts
Returns a list of paths that cause a checkout conflict. These paths prevent the operation from even starting.- Returns:
- the list of files that caused the checkout conflict.
-