Distributed versus centralized version control systems