Add diff support

Possibly eeds some changes and tests on bigger repos, but might be good enough as a starting point.