SCM rewrite

This change add support for multiple SCM systems

Also improves SVN hook integration fixing flaws in previous implementation.