Diff Algorithms

How I overcame copying and modifying my own diff library from project to project by diving too deep into diff algorithms and coming out at the other end with new diff library in my hand.