Centralized vs Distributed Version Control Systems