Another nice thing to have:
Refactor the VCS support into pluggable backends (similar to Django DB engines) so that anyone can easily add a new VCS, and adding new VCS's doesn't turn into a big cluster of if else statements (also reduces repetitive code if these are class based and you can factor out the similar parts into separate methods.