This repository was archived by the owner on Nov 12, 2019. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +55
-23
lines changed Expand file tree Collapse file tree 3 files changed +55
-23
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 1
1
package diffutils ;
2
2
3
- import java .io .BufferedReader ;
4
3
import java .io .File ;
5
- import java .io .FileReader ;
6
- import java .io .IOException ;
7
- import java .util .LinkedList ;
8
4
import java .util .List ;
9
5
10
6
import difflib .Delta ;
11
7
import difflib .DiffUtils ;
12
8
import difflib .Patch ;
13
9
14
- public class ComputeDifference {
10
+ public class ComputeDifference extends Example {
15
11
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" ;
32
14
33
15
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 );
36
18
37
19
// Compute diff. Get the Patch object. Patch is the container for computed deltas.
38
20
Patch patch = DiffUtils .diff (original , revised );
Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments