All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. This project uses a custom versioning scheme (and not Semantic Versioning).
- API change: due to Issue #159: the author of the algorithm is Eugene Myers, therefore classes and methods were renamed accordingly
- bugfixing new UnifiedDiff reader
- header for each file
- skip empty lines
- introduction of Meyers Diff Algorithm with Linear Space improvment (until matured this will not be the default diff algorithm)
- introduction of DiffAlgorithmFactory to set the default diff algorithm DiffUtils use (
DiffUtils.withDefaultDiffAlgorithmFactory(MeyersDiffWithLinearSpace.factory());
)
- bugfixing on new UnifiedDiff reader / writer for multifile usage
- bugfix for wrong DiffRow type while transforming from a patch that removed a line in one changeset
- introduced change position into UnifiedDiff reader
- introduced first version of conflict output possibility (like GIT merge conflict)
- moved verification to
AbstractDelta
- introduced
ConflictOutput
toPatch
to add optional behaviour to patch conflicts
- moved verification to
- make patch serializable
- some bugfixes regarding unified diff writer
- UnifiedDiffReader improved for deleted file mode and better timestamp recognition
- UnifiedDiffReader improved for new file mode and better timestamp recognition
- minor bug fixes
- optional include equal parts of original and revised data
- API change: removed DiffException completely
- added possibility to process diffs to for instance show whitespace characters
4.4 – 2019-11-06
- java-diff-utils is now a multi module project. The main project java-diff-utils now comes without any dependencies.
- started reimplementation of unified diff tools
- Exchange
0 += 1
for0 = 1
in UnifiedDiffUtils - preview of new Unified Diff Reader / Writer. This is not yet feature complete but passes the tests of the old version.
- feel free to issue some change requests for the api.
- introduces lineNormalizer extension point to e.g. change html code encoding. (issue #41)
4.0 – 2019-01-09
- moved to organisation java-diff-utils
- changed groupid to io.github.java-diff-utils and artifact id to java-diff-utils
3.0 – 2018-10-18
- Introduced a process listener to diff algorithms. For long running diffs one could implement some progress information.
- automatic module name for JDK 9 and higher usage
- changed generation of inline diffes, if there are different linefeeds within one diff, then these are excluded from the diff block.
- Due to licensing issues Delta.java and DiffAlgorithm.java were removed.
2.2 – 2017-11-09
- released at maven central
- included checkstyle source code conventions
- allow configurable splitting of lines to define the blocks to compare (words, characters, phrases).
- groupid changed to com.github.wumpz, due to maven central releasing
- support for inline merge
- integrated JGit (Eclipse Licensed) to provide HistogramDiff to gain speed for large datasets
- switch to maven and removed other artifacts
- changed groupid to com.github.java-diff-utils due to different forks at github
- updated maven plugins
- JDK 1.8 compatibility, sorry if you have to stick with older versions
- restructured packages heavily
- changed API
- changed Algorithm to provide only cursor positions
- removed all kinds of helper classes in favour of new JDK 8 function classes like Predicate
- JDK 1.5 compatibility
- Ant build script
- Generate output in unified diff format (thanks for Bill James)