Version control systems
Version control systems (VCS) provide a way to share, synchronize, and back up any kind of file. They are categorized into two families:
Centralized systems
Distributed systems
Centralized systems
A centralized version control system is based on a single server that holds the files and lets people check in and check out the changes that are made to those files. The principle is quite simple—everyone can get a copy of the files on his/her system and work on them. From there, every user can commit his/her changes to the server. They will be applied and the revision number will be raised. The other users will then be able to get those changes by synchronizing their repository copy through an update.
The repository evolves through all the commits, and the system archives all revisions into a database to undo any change or provide information on what has been done:
Every user in this centralized configuration is responsible for synchronizing his/her local repository...