You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Diff Utils library is an OpenSource library for performing the comparison / diff operations between texts or some kind of data: computing diffs, applying patches, generating unified diffs or parsing them, generating diff output for easy future displaying (like side-by-side view) and so on.
Diff Utils library is an OpenSource library for performing the comparison operations between texts: computing diffs, applying patches, generating unified diffs or parsing them, generating diff output for easy future displaying (like side-by-side view) and so on.
Main reason to build this library was the lack of easy-to-use libraries with all the usual stuff you need while working with diff files. Originally it was inspired by JRCS library and it's nice design of diff module.
This is originally a fork of java-diff-utils from Google Code Archive.
GPG Signature Validation
The gpg singing key in [KEYS] is used for this projects artifacts.
Look here to find more helpful informations and examples.
These two outputs are generated using this java-diff-utils. The source code can also be found at the Examples page:
Producing a one liner including all difference information.
//create a configured DiffRowGeneratorDiffRowGeneratorgenerator = DiffRowGenerator.create()
.showInlineDiffs(true)
.mergeOriginalRevised(true)
.inlineDiffByWord(true)
.oldTag(f -> "~") //introduce markdown style for strikethrough
.newTag(f -> "**") //introduce markdown style for bold
.build();
//compute the differences for two test texts.List<DiffRow> rows = generator.generateDiffRows(
Arrays.asList("This is a test senctence."),
Arrays.asList("This is a test for diffutils."));
System.out.println(rows.get(0).getOldLine());
This is a test senctencefor diffutils.
Producing a side by side view of computed differences.
DiffRowGeneratorgenerator = DiffRowGenerator.create()
.showInlineDiffs(true)
.inlineDiffByWord(true)
.oldTag(f -> "~")
.newTag(f -> "**")
.build();
List<DiffRow> rows = generator.generateDiffRows(
Arrays.asList("This is a test senctence.", "This is the second line.", "And here is the finish."),
Arrays.asList("This is a test for diffutils.", "This is the second line."));
System.out.println("|original|new|");
System.out.println("|--------|---|");
for (DiffRowrow : rows) {
System.out.println("|" + row.getOldLine() + "|" + row.getNewLine() + "|");
}
original
new
This is a test senctence.
This is a test for diffutils.
This is the second line.
This is the second line.
And here is the finish.
Main Features
computing the difference between two texts.
capable to hand more than plain ascii. Arrays or List of any type that implements hashCode() and equals() correctly can be subject to differencing using this library
patch and unpatch the text with the given patch
parsing the unified diff format
producing human-readable differences
inline difference construction
Algorithms:
Myers Standard Algorithm
Myers with linear space improvement
HistogramDiff using JGit Library
Algorithms
Myer's diff
HistogramDiff
But it can easily replaced by any other which is better for handing your texts. I have plan to add implementation of some in future.
Source Code conventions
Recently a checkstyle process was integrated into the build process. java-diff-utils follows the sun java format convention. There are no TABs allowed. Use spaces.
Diff Utils library is an OpenSource library for performing the comparison / diff operations between texts or some kind of data: computing diffs, applying patches, generating unified diffs or parsing them, generating diff output for easy future displaying (like side-by-side view) and so on.