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.