GIT - A Stupid Content Tracker
Git was hurriedly hacked together by Linus Torvalds, after the Linux kernel project lost its license to use BitKeeper as its source code management system (SCM). It has since quickly grown to become capable of managing the Linux kernel project source code. Other projects have started to replace their existing SCMs with it. Among interesting things that it does are:
- giving a quick whole-tree diff,
- quick, simple, stupid-but-safe merge,
- facilitating e-mail based patch exchange workflow, and
- helping to pin-point the change that caused a particular bug by a bisection search in the development history.
The core git functionality is implemented as a set of programs to allow higher-layer systems (Porcelains) to be built on top of it. Several Porcelains have been built on top of git, to support different workflows and individual taste of users. The primary advantage of this architecture is ease of customization, while keeping the repositories managed by different Porcelains compatible with each other.
The paper gives an overview of how git evolved and discusses the strengths and weaknesses of its design.