A much less intrusive version of #3274 that has effect on checkout / pull / merge, rather than setup.py. It does require a user install step, because you cannot add active hooks to a repo.