A framework for Subversion commit hooks