How to write an external tool for git diff to delegate complex diffs to.

Read in full here: