Class MergeAlgorithm

java.lang.Object
org.eclipse.jgit.merge.MergeAlgorithm

public final class MergeAlgorithm extends Object
Provides the merge algorithm which does a three-way merge on content provided as RawText. By default HistogramDiff is used as diff algorithm.
  • Field Details

    • diffAlg

      private final DiffAlgorithm diffAlg
    • END_EDIT

      private static final Edit END_EDIT
  • Constructor Details

    • MergeAlgorithm

      public MergeAlgorithm()
      Creates a new MergeAlgorithm which uses HistogramDiff as diff algorithm
    • MergeAlgorithm

      public MergeAlgorithm(DiffAlgorithm diff)
      Creates a new MergeAlgorithm
      Parameters:
      diff - the diff algorithm used by this merge
  • Method Details

    • isEndEdit

      private static boolean isEndEdit(Edit edit)
    • merge

      public <S extends Sequence> MergeResult<S> merge(SequenceComparator<S> cmp, S base, S ours, S theirs)
      Does the three way merge between a common base and two sequences.
      Parameters:
      cmp - comparison method for this execution.
      base - the common base sequence
      ours - the first sequence to be merged
      theirs - the second sequence to be merged
      Returns:
      the resulting content
    • nextEdit

      private static Edit nextEdit(Iterator<Edit> it)
      Helper method which returns the next Edit for an Iterator over Edits. When there are no more edits left this method will return the constant END_EDIT.
      Parameters:
      it - the iterator for which the next edit should be returned
      Returns:
      the next edit from the iterator or END_EDIT if there no more edits