From 62af9097ccf2892049b95dba6800e3faf9d18a45 Mon Sep 17 00:00:00 2001 From: Tobias Date: Fri, 24 Apr 2020 06:48:29 +0200 Subject: [PATCH] Update README.md --- README.md | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b1057c..34c09e6 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,96 @@ # java-diff-utils -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. + +## Status + +[![Build Status](https://travis-ci.org/java-diff-utils/java-diff-utils.svg?branch=master)](https://travis-ci.org/java-diff-utils/java-diff-utils) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7eba77f10bed4c2a8d08ac8dc8da4a86)](https://www.codacy.com/app/wumpz/java-diff-utils?utm_source=github.com&utm_medium=referral&utm_content=java-diff-utils/java-diff-utils&utm_campaign=Badge_Grade) +[![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.java-diff-utils/java-diff-utils/badge.svg)](http://maven-badges.herokuapp.com/maven-central/io.github.java-diff-utils/java-diff-utils) + +## Intro + +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.** + +## API + +Javadocs of the actual release version: [JavaDocs java-diff-utils](https://java-diff-utils.github.io/java-diff-utils/4.7/docs/api/) + +## Examples + +Look [here](https://github.com/wumpz/java-diff-utils/wiki) 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.** + +This is a test ~senctence~**for diffutils**. + +**Producing a side by side view of computed differences.** + +|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: + * Myer + * 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. + +```java +public static Patch diff(List original, List revised, + BiPredicate equalizer) throws DiffException { + if (equalizer != null) { + return DiffUtils.diff(original, revised, + new MyersDiff<>(equalizer)); + } + return DiffUtils.diff(original, revised, new MyersDiff<>()); +} +``` + +This is a valid piece of source code: + +* blocks without braces are not allowed +* after control statements (if, while, for) a whitespace is expected +* the opening brace should be in the same line as the control statement + +### To Install + +Just add the code below to your maven dependencies: + +```xml + + io.github.java-diff-utils + java-diff-utils + 4.5 + +``` + +or using gradle: + +```groovy +// https://mvnrepository.com/artifact/io.github.java-diff-utils/java-diff-utils +implementation "io.github.java-diff-utils:java-diff-utils:4.5" +```