Class MergeResult

java.lang.Object
org.eclipse.jgit.api.MergeResult

public class MergeResult extends Object
Encapsulates the result of a MergeCommand.
  • Field Details

  • 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 merge
      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
      mergedCommits - all the commits which have been merged together
      mergeStatus - the status the merge resulted in
      mergeStrategy - the used MergeStrategy
      lowLevelResults - merge results as returned by ResolveMerger.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 merge
      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
      mergedCommits - all the commits which have been merged together
      mergeStatus - the status the merge resulted in
      mergeStrategy - the used MergeStrategy
      lowLevelResults - merge results as returned by ResolveMerger.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 merge
      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
      mergedCommits - all the commits which have been merged together
      mergeStatus - the status the merge resulted in
      mergeStrategy - the used MergeStrategy
      lowLevelResults - merge results as returned by ResolveMerger.getMergeResults()
      failingPaths - list of paths causing this merge to fail as returned by ResolveMerger.getFailingPaths()
      description - a user friendly description of the merge result
    • MergeResult

      public MergeResult(List<String> checkoutConflicts)
      Creates a new result that represents a checkout conflict before the operation even started for real.
      Parameters:
      checkoutConflicts - the conflicting files
  • Method Details

    • getNewHead

      public ObjectId getNewHead()
      Get the object the head points at after the merge
      Returns:
      the object the head points at after the merge
    • getMergeStatus

      public MergeResult.MergeStatus getMergeStatus()
      Get the merge status
      Returns:
      the status the merge resulted in
    • getMergedCommits

      public ObjectId[] getMergedCommits()
      Get the commits which have been merged
      Returns:
      all the commits which have been merged together
    • getBase

      public ObjectId 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

      public String toString()
      Overrides:
      toString in class Object
    • setConflicts

      public void setConflicts(Map<String,int[][]> conflicts)
      Set conflicts
      Parameters:
      conflicts - the conflicts to set
    • addConflict

      public void addConflict(String path, int[][] conflictingRanges)
      Add a conflict
      Parameters:
      path - path of the file to add a conflict for
      conflictingRanges - the conflicts to set
    • addConflict

      public void addConflict(String path, MergeResult<?> lowLevelResult)
      Add a conflict
      Parameters:
      path - path of the file to add a conflict for
      lowLevelResult - a MergeResult
    • getConflicts

      public Map<String,int[][]> getConflicts()
      Returns information about the conflicts which occurred during a MergeCommand. 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

      public Map<String,ResolveMerger.MergeFailureReason> getFailingPaths()
      Returns a list of paths causing this merge to fail as returned by ResolveMerger.getFailingPaths()
      Returns:
      the list of paths causing this merge to fail or null if no failure occurred
    • getCheckoutConflicts

      public List<String> 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.