01Overview

In 1972 SCCS stored source versions as deltas; in 1982 RCS simplified single-file version control; in 1990 CVS supported many files and many people and became the default for open-source projects. In 2000 SVN improved on centralised repositories with atomic commits.

In 2005 the Linux community needed a new distributed system, and Torvalds wrote Git in about two weeks: every clone is a full repository, commits are identified by content hashes, and a branch is just a pointer. Git’s snapshot model and cheap branches changed workflows, and GitHub turned code hosting into a social network. Today a commit history is itself a form of engineering documentation.

02History

  1. 1972

    SCCS

    One of the first version-control systems.

  2. 1982

    RCS

    Version control for single files.

  3. 1990

    CVS

    Multi-person collaboration and open source.

  4. 2000

    SVN

    A central repository with atomic commits.

  5. 2005

    Git

    Distributed version control.

03Core concepts

Commit

An immutable snapshot identified by a content hash.

Branch

A lightweight pointer to a commit, almost free to create.

Merge

Bring the changes of two histories back together.

04Hands-on

Do it once — it beats reading it ten times

Rebuild the same three-branch history twice: once with merge commits, once rebased — then argue which is easier to audit

05Self-check

Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.

Can you explain "Commit"?

An immutable snapshot identified by a content hash.

Can you explain "Branch"?

A lightweight pointer to a commit, almost free to create.

Can you explain "Merge"?

Bring the changes of two histories back together.

What problem did it solve, and why was there nothing better at the time?

Go back to the history section: how was this done before, and what did it cost?

If you had to build it today, how would you break it down?

Use the hands-on task above: write a plan of at most three steps before you start.

06Key people

M

Mark Rochkind

1953 –

Author of RCS.

L

Linus Torvalds

1969 –

Creator of Git.

07Further reading

  • Pro GitChacon & Straub · 2009
  • Pragmatic Version ControlMike Mason · 2005