Safe Haskell | Safe-Inferred |
---|
An implementation of a 3-way merge algorithm.
Documentation
A hunk is a collection of changes that occur in a document. A hunk can be
some changes only in A, only in B, in both A & B (equally), or conflicting
between A, B and the original document. All hunks take 3 constructors, which
are, in order - the elements in the left document, the original document, and
the right document. This order matches the order of parameters to diff3
.
LeftChange [a] | |
RightChange [a] | |
Unchanged [a] | |
Conflict [a] [a] [a] |
diff3 :: Eq a => [a] -> [a] -> [a] -> [Hunk a]Source
Perform a 3-way diff against 2 documents and the original document. This
returns a list of triples, where each triple contains all parts of the
original document that either agree on 2 or 3 sides, or conflict. This can be
considered a 'low level' interface to the 3-way diff algorithm - you may be
more interested in merge
and toHunks
, which provide a higher level
interface.