/diffparser

Parse unified diffs with Java.

Primary LanguageJavaApache License 2.0Apache-2.0

diffparser

Build Status

Parse unified diffs with Java.

Code example

DiffParser parser = new UnifiedDiffParser();
InputStream in = new FileInputStream("/path/to/file.diff");
List<Diff> diff = parser.parse(in);

What Diff formats can be parsed?

Currently, the only implementation of the DiffParser interface is UnifiedDiffParser, which supports parsing of diffs like the following:

Modified: trunk/test1.txt
===================================================================
--- /trunk/test1.txt	2013-10-23 19:41:56 UTC (rev 46)
+++ /trunk/test1.txt	2013-10-23 19:44:39 UTC (rev 47)
@@ -1,4 +1,3 @@
 test1
-test1
+test234

-test1
\ No newline at end of file
@@ -5,9 +6,10 @@
-test1
-test1
+aösdhasd
+asdasd

An input stream may contain several sections like the above, delimited by an empty line. Each such section will be parsed into an object of class Diff.

Latest Stable Release

Download

Download

Maven

...
<repositories>
  <repository>
    <id>jcenter</id>
    <url>https://jcenter.bintray.com/</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>io.reflectoring.diffparser</groupId>
    <artifactId>diffparser</artifactId>
    <version>1.4</version>
  </dependency>
</dependencies>
...

Gradle

repositories {
  jcenter()
}

dependencies {
  compile('io.reflectoring.diffparser:diffparser:1.4')
}

Snapshots

You can access the latest snapshot by adding "-SNAPSHOT" to the version number and adding the repository https://oss.jfrog.org/artifactory/oss-snapshot-local to your build.

You can also reference a specific snapshot like 1.4-20171220.195055-1. Here's the list of snapshot versions.

Maven

...
<repositories>
  <repository>
    <id>oss-snapshot-local</id>
    <url>https://oss.jfrog.org/webapp/#/artifacts/browse/tree/General/oss-snapshot-local/io/reflectoring/diffparser/diffparser</url>
  </repository>
</repositories>

<dependencies>
  <dependency>
    <groupId>io.reflectoring.diffparser</groupId>
    <artifactId>diffparser</artifactId>
    <version>1.5-SNAPSHOT</version>
  </dependency>
</dependencies>
...

Gradle

repositories {
  maven { url 'https://oss.jfrog.org/artifactory/oss-snapshot-local' }
}

dependencies {
  compile('io.reflectoring.diffparser:diffparser:1.5-SNAPSHOT')
}