Brief Version Control Systems (VCS) History

First Generation

  • Concurrent Development was handled solely with locks. Only one person could be working on a file at a time.
  • Networking not supported / One File at a Time operations

Examples : RCS, SCCS

Second Generation

  • A bit more permissive about simultaneous modifications, with one notable restriction: Users must merge the current revisions into their work before they are allowed to commit.
  • Centralized Networking / Multi-file operations

Examples : CVS, SourceSafe, Subversion, Team Foundation Server

Third Generation

  • Separates merge and commit
  • Distributed Networking / Changesets operations

Examples : GIT, Mercurial, Bazaar

Origins

  • Linux Kernel Project
  • Meant to be distributed, fast and more natural
  • Capable of Handling Large Projects

Version control paradigms