Diffing
Diffing is the process of computing differences between two sequences, most commonly text files. A diff identifies insertions, deletions, and modifications, and can be used to produce a patch that, when applied to the original, yields the new version. Diffing underpins many software development tasks, including version control, code review, and file synchronization.
Common algorithms aim to find a maximal set of unchanged elements. The Longest Common Subsequence (LCS) concept
Output formats typically include unified diff and context diff. A unified diff shows a sequence of hunk
Applications are broad. Version control systems like Git and Subversion rely on diffing to display changes,
Limitations include difficulty in detecting moves or refactors with simple diffs, and interpreting edits without understanding