howthesausageismade

Git

by Linus Torvalds · software · 2005

git is a distributed version control system created by linus torvalds, with development beginning on 3 april 2005. torvalds started developing git in april 2005 after the free license for bitkeeper, the proprietary source-control management (scm) system used for linux kernel development since 2002, was revoked for linux. in that first commit, he'd written enough of git to use git to make the commit, and on 29 april, the nascent git was benchmarked recording patches to the linux kernel tree at a rate of 6.7 patches per second. torvalds designed it coming at the problem from the viewpoint of a filesystem person, explaining "it's content-addressable, and it has a notion of versioning, but i really designed it coming at the problem from the viewpoint of a filesystem person".

referenced

  • BitKeeper · Larry McVoynot yet generatedgenerate →

    torvalds built git after losing access to bitkeeper and explicitly designed it to replicate bitkeeper's distributed workflow model while differing technically. he stated bitkeeper was the first source control he felt worth using and taught him the value of version control, and that git's usage flows come directly from what he learned using bitkeeper from 2002 to 2005.

    BitKeeper was not only the first source control system that I ever felt was worth using at all, it was also the source control system that taught me why there is a point to them, and how you actually can do things.
    source ↗
  • Monotonenot yet generatedgenerate →

    torvalds praised monotone in april 2005 as the most viable bitkeeper alternative and considered it briefly. git borrowed some design ideas from monotone, including distributed architecture and sha-1 hashing for integrity, but torvalds rejected it after one day of testing due to performance issues too slow for kernel development.

    Git's design uses some ideas from Monotone, but the two projects do not share any core source code.
    source ↗

reacted against

  • CVS (Concurrent Versions System)not yet generatedgenerate →

    torvalds used cvs as an explicit negative template when designing git. his design principle was to ask what cvs would not do and choose the opposite, a guideline he called "what would cvs never ever do." he worked with cvs for seven years at a commercial company and hated it, avoiding its centralized model and poor merging.

    when I designed git, it's "what would Jesus do" except that it's "what would CVS never ever do"-kind of approach to source control management.
    source ↗

citations

  1. [01]

    Wikipedia · Gitsingle-source· article

    Git is a distributed version control software system that is capable of managing versions of source code or data. It is often used to control source code by programmers who are developing software collaboratively.
  2. [02]

    Wikidata · Q186055· archive

    distributed version control system