Engineering Full Stack Apps with Java and JavaScript
Users could make their own revisions of a document, commit changes, and merge them together. However, these systems (e.g. TCS) operates only on single files. It has no way of working with an entire project, so it does not support atomic commits affecting multiple files.
Examples include SCCS, RCS etc.
These systems follow a client server model.
Important ones belonging to this category includes: CVS, VSS, SVN, TFS, Perforce.
Distributed version control (aka distributed revision control) is a form of version control where the complete codebase - including its full history - is mirrored on every developer's computer.
DVCS allow branching and merging to be managed automatically, increases speeds of most operations (except for pushing and pulling), improves the ability to work offline, and does not rely on a single location for backups.
Example systems include Git, Mercurial, BitKeeper etc.
https://ericsink.com/vcbe/html/history_of_version_control.html
https://en.wikipedia.org/wiki/Comparison_of_version_control_software
https://en.wikipedia.org/wiki/Distributed_version_control
https://en.wikipedia.org/wiki/Source_Code_Control_System
https://en.wikipedia.org/wiki/Revision_Control_System
https://en.wikipedia.org/wiki/Microsoft_Visual_SourceSafe
https://en.wikipedia.org/wiki/Apache_Subversion
https://en.wikipedia.org/wiki/Team_Foundation_Server
https://en.wikipedia.org/wiki/Perforce
https://en.wikipedia.org/wiki/Git_(software)