Centralized Version Control is a version control system using server/client model and server contains all the history of source code.
Distributed Version Control is a version control where each client can have same copy of source code as server has and both server and client maintain history of source code.
Following are the important difference between Centralized Version Control and Distributed Version Control.
|Sr. No.||Key||Centralized Version Control||Distributed Version Control|
|1||Working||In CVS, a client need to get local copy of source from server, do the changes and commit those changes to centeral source on server.||In DVS, each client can have a local branch as well and have a complete history on it. Client need to push the changes to branch which will then be pushed to server repository.|
|2||Learning Curve||CVS systems are easy to learn and set up.||DVS systems are difficult for beginners. Multiple commands needs to be remembered.|
|3||Branches||Working on branches in difficult in CVS. Developer often faces merge conflicts.||Working on branches in easier in DVS. Developer faces lesser conflicts.|
|4||Offline Access||CVS system do not provide offline access.||DVD systems are workable offline as a client copies the entire repository on their local machine.|
|5||Speed||CVS is slower as every command need to communicate with server.||DVS is faster as mostly user deals with local copy without hitting server everytime.|
|6||Backup||If CVS Server is down, developers cannot work.||If DVS server is down, developer can work using their local copies.|