In the long run it would be nice to be able to choose whether to use Mercurial or Git as VCS backend.
As a first step we should refactor things so that we have a VCSDriver independent interface with a method to select which driver to use. Currently we have e.g. HgRepository class which has several static methods.