difftastic/text_diff_notes.md

49 lines
490 B
Markdown

Consider changing:
```
foo();
bar();
```
To:
```
if (true) {
foo();
}
```
What we want:
```
+ if (true) {
foo();
- bar();
+ }
```
A longest-common-subsequence algorithm is wrong here. The longest
subsequence is five tokens:
```
( ) ( ) ;
```
which leads to:
```
+if+ (+true+) +{+
+foo+();
-bar-();
+}+
```
so we claim `foo` is added. We want the following *four* tokens to be
preserved:
```
foo ( ) ;
```
Proposed solution: advance on both sides, keep first match.