Closed GoogleCodeExporter closed 9 years ago
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 aprestw...@gmail.com
on 13 Apr 2011 at 8:20
Original comment by dm.naume...@gmail.com
on 20 May 2011 at 10:03
Original issue reported on code.google.com by
aprestw...@gmail.com
on 13 Apr 2011 at 4:40Attachments: