Comments (2)
Sorry, false alarm. After reviewing the code and output more I found it is
working correctly, I wasn't :/. I wasn't processing ChangeDeltas correctly as I
was treating them as DeleteDeltas (was looking for inserts and deletes).
Sorry for any confusion, here is the modified code.
public class DiffTest1 {
// Helper method for get the file content
private static List<String> fileToLines(String filename) {
List<String> lines = new LinkedList<String>();
String line = "";
try {
BufferedReader in = new BufferedReader(new FileReader(filename));
while ((line = in.readLine()) != null) {
lines.add(line);
}
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
public static void main(String[] args) {
List<String> original = fileToLines("Chunk1.java");
List<String> revised = fileToLines("Chunk2.java");
//List<String> original = fileToLines("Test.java");
//List<String> revised = fileToLines("Test2.java");
// Compute diff. Get the Patch object. Patch is the container for computed deltas.
Patch patch = DiffUtils.diff(original, revised);
System.out.println("Changes: " + patch.getDeltas().size());
for (Delta delta: patch.getDeltas()) {
System.out.println(delta);
}
//print out a detailed list of changes
try {
for (Delta delta: patch.getDeltas()) {
System.out.println("(at " + delta.getOriginal().getPosition() + ")");
if(delta instanceof InsertDelta){
Chunk ck = delta.getRevised();
for(String sl: (List<String>)ck.getLines()){
System.out.println("(+)"+sl);
}
}else if(delta instanceof DeleteDelta){
Chunk ck = delta.getOriginal();
for(String sl: (List<String>)ck.getLines()){
System.out.println("(-)"+sl);
}
}else{
//change
Chunk ck = delta.getOriginal();
for(String sl: (List<String>)ck.getLines()){
System.out.println("(-)"+sl);
}
ck = delta.getRevised();
for(String sl: (List<String>)ck.getLines()){
System.out.println("(+)"+sl);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Original comment by [email protected]
on 13 Apr 2011 at 8:20
from java-diff-utils.
Original comment by [email protected]
on 20 May 2011 at 10:03
- Changed state: WontFix
from java-diff-utils.
Related Issues (20)
- Headers in some/most files say license is GPL while home page says ASL2 HOT 1
- Change line has wrong diff indicators HOT 1
- ArrayIndexOutOfBounds exception when the text includes a line that matches the format "@@ -2,6 +2,7 @@" HOT 1
- Parsing add-only parts of unified diffs generated by "diff -U 0 ..." fails
- Cannot open JAR "diffutils-1.2.1.jar" HOT 1
- Please add support for generics instead of using Objects HOT 1
- patch delta inconsistency on a 1-character insert
- return diff position start from 0?
- Provide java-diff-utils as OSGi bundle HOT 1
- Diff algorithm hangs in infinite loop on pathological data
- its not working? HOT 3
- Delta.applyTo and Delta.restore take List<Object> which causes generics problems
- Patch for /wiki/SampleUsage.wiki
- Support fuzzy-patch
- Diff misses change
- Please include a LICENSE file in the source tree
- Patch for /wiki/SampleUsage.wiki
- Are SNAPSHOTs available for Maven dependencies?
- What license is java-diff-utils released under?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from java-diff-utils.