# Diff, Match and Patch

## Demo of Diff

Diff takes two texts and finds the differences. This implementation works on a character by character basis. The result of any diff may contain 'chaff', irrelevant small commonalities which complicate the output. A post-diff cleanup algorithm factors out these trivial commonalities.

### Text Version 1:

I am the very model of a modern Major-General, I've information vegetable, animal, and mineral, I know the kings of England, and I quote the fights historical, From Marathon to Waterloo, in order categorical.

### Text Version 2:

I am the very model of a cartoon individual, My animation's comical, unusual, and whimsical, I'm quite adept at funny gags, comedic theory I have read, From wicked puns and stupid jokes to anvils that drop on your head.

### Diff timeout:

seconds
If the mapping phase of the diff computation takes longer than this, then the computation is truncated and the best solution to date is returned. While guaranteed to be correct, it may not be optimal. A timeout of '0' allows for unlimited computation.

### Post-diff cleanup:

Semantic Cleanup
  Increase human readability by factoring out commonalities which are likely to be coincidental.
Efficiency Cleanup, edit cost:
  Increase computational efficiency by factoring out short commonalities which are not worth the overhead. The larger the edit cost, the more agressive the cleanup.
No Cleanup
  Raw output.

Back to Diff, Match and Patch