add diff() and commit() to gits
use types.* when compatible with py3k
naming things