This "problem" may be more of a conceptual one rather than a technical one; for example, a file with "years = [1989,1870,2016]" diffed with "years = [1920,1889,1670]" according to you should appear as the move of 6 lines, it is technically true but doesn't help the user one bit, which is usually the purpose of a diff.