Skip to content
This repository was archived by the owner on Nov 12, 2019. It is now read-only.

Commit 140347c

Browse files
committed
add apply patch example
1 parent 6dce2c4 commit 140347c

File tree

3 files changed

+55
-23
lines changed

3 files changed

+55
-23
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package diffutils;
2+
3+
import java.io.File;
4+
import java.util.List;
5+
6+
import difflib.DiffUtils;
7+
import difflib.Patch;
8+
import difflib.PatchFailedException;
9+
10+
public class ApplyPatch extends Example {
11+
static final String FS = File.separator;
12+
static final String ORIGINAL = "test" + FS + "mocks" + FS + "issue10_base.txt";
13+
static final String PATCH = "test" + FS + "mocks" + FS + "issue10_patch.txt";
14+
15+
public static void main(String[] args) throws PatchFailedException {
16+
List<String> original = fileToLines(ORIGINAL);
17+
List<String> patched = fileToLines(PATCH);
18+
19+
// At first, parse the unified diff file and get the patch
20+
Patch patch = DiffUtils.parseUnifiedDiff(patched);
21+
22+
// Then apply the computed patch to the given text
23+
List result = DiffUtils.patch(original, patch);
24+
System.out.println(result);
25+
/// Or we can call patch.applyTo(original). There is no difference.
26+
}
27+
}

test/examples/diffutils/ComputeDifference.java

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,20 @@
11
package diffutils;
22

3-
import java.io.BufferedReader;
43
import java.io.File;
5-
import java.io.FileReader;
6-
import java.io.IOException;
7-
import java.util.LinkedList;
84
import java.util.List;
95

106
import difflib.Delta;
117
import difflib.DiffUtils;
128
import difflib.Patch;
139

14-
public class ComputeDifference {
10+
public class ComputeDifference extends Example {
1511
static final String FS = File.separator;
16-
static final String originalFilename = "test" + FS + "mocks" + FS + "original.txt";
17-
static final String revisedFilename = "test" + FS + "mocks" + FS + "revised.txt";
18-
19-
private static List<String> fileToLines(String filename) {
20-
List<String> lines = new LinkedList<String>();
21-
String line = "";
22-
try {
23-
BufferedReader in = new BufferedReader(new FileReader(filename));
24-
while ((line = in.readLine()) != null) {
25-
lines.add(line);
26-
}
27-
} catch (IOException e) {
28-
e.printStackTrace();
29-
}
30-
return lines;
31-
}
12+
static final String ORIGINAL = "test" + FS + "mocks" + FS + "original.txt";
13+
static final String RIVISED = "test" + FS + "mocks" + FS + "revised.txt";
3214

3315
public static void main(String[] args) {
34-
List<String> original = fileToLines(originalFilename);
35-
List<String> revised = fileToLines(revisedFilename);
16+
List<String> original = fileToLines(ORIGINAL);
17+
List<String> revised = fileToLines(RIVISED);
3618

3719
// Compute diff. Get the Patch object. Patch is the container for computed deltas.
3820
Patch patch = DiffUtils.diff(original, revised);

test/examples/diffutils/Example.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package diffutils;
2+
3+
import java.io.BufferedReader;
4+
import java.io.FileReader;
5+
import java.io.IOException;
6+
import java.util.LinkedList;
7+
import java.util.List;
8+
9+
public class Example {
10+
public static List<String> fileToLines(String filename) {
11+
List<String> lines = new LinkedList<String>();
12+
String line = "";
13+
try {
14+
BufferedReader in = new BufferedReader(new FileReader(filename));
15+
while ((line = in.readLine()) != null) {
16+
lines.add(line);
17+
}
18+
} catch (IOException e) {
19+
e.printStackTrace();
20+
}
21+
return lines;
22+
}
23+
}

0 commit comments

Comments
 (0)