git: Version Control System for Linux Kernel

Introduction

BitKeeper was used for Linux kernel development, but due to problems, Linus started choosing a new version control system for use with Linux from around 4 April 2005. In the process of choosing, git was started, just in case there was no VCS capable of handling kernel development. On 21 April 2005, Linus started using git on mainline kernel development, and Linux kernel has been developed with git ever since. Development of git is passed on to Junio Hamano since Jul 2005.

Presentation

A presentation made at YLUG Kernel-reading party on 17 Sep 2005 (in Japanese).

A presentation made at YLUG Kernel-reading party on 20 April 2005 (in Japanese).

On 28 April 2005, cogito 0.7 was released, and a of command-line interface and how git is handled through cogito has dramatically changed. Thankfully, basic operations are now much simpler.

By July 2005, a new backend data format 'packed' was introduced. There was experimental support for data format 'delta', which stored differences apparently no longer works. In the normal git format, each file is stored under the filename derived from its calculated sha1 under the .git/objects directory. Considering replication speed, and file system block usage, and i-node use, a 'packed' format including several revisions of file can be used now.

Example usage

The following is the method to check out linus's tree from git repository as of 27 Nov 2005, using cogito 0.15 (from upstream source).

cg-clone http://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git/
    

To update the tree, in the working directory do:

cg-update
    

References

More historic References


Junichi Uekawa

$Id: 200504-git.html.en,v 1.23 2006/05/19 14:34:57 dancer Exp $