Add git diff.
cleanup.
Add diff api to scm.
More work on git diff.