This is a tool for finding the differences between two text files and in particular finding what parts have been edited, deleted or added. It implements one of the algorithms for finding the Longest Common Subsequence between to data sources.

You can see a demo at: http://www.bodurov.com/JavaScriptDiff/

The main idea of this algorithm is to build a matrix with rows – future state, and columns – previous state. This matrix will consist of squares incorporated one into the other as steps in a stairway. The path of following those steps from the top left corner to the right bottom corner determines the actual graph. Moves to the right are deletes, to the bottom – inserts. Inserts followed by deletes are changes.

All the code is inline, so it is easy to reuse and understand. It involves no server side code, or anything other than the included JavaScript. Because of the lack of hashing optimizations or any other algorithm optimizations, the source is limited to 500 lines maximum for performance reasons.

It is also available on codeplex at http://javascriptdiff.codeplex.com/

A better implementation with Silverlight 4: http://www.bodurov.com/TextDiff/
Blog Entry:http://blog.bodurov.com/Text-Difference-Visualizer/

Share this post:   digg     Stumble Upon     del.icio.us     E-mail

Please post your comments:

Name:  
Email (optional): Your email address will not be posted.
Comments: HTML will be ignored, URLs will be converted to hyperlinks  
Enter the text you see in the box: