Debian 19歲:在git上回顧代碼的生命之樹
原創(chuàng)【51CTO快訊】2012年8月16日,Debian迎來了自己的19歲生日(順便說一句,昨天是51CTO的七周年紀念日)。一般而言,技術控們慶祝項目生日的做法就是聚在一起討論分享,吃個蛋糕什么的(比如去年的Linux 20周年慶)。今年,Debian的開發(fā)者之一Raphaël Hertzog用了另一個慶祝方式:做視頻。
Raphaël Hertzog在1998年成為了一名Debian Developer(有關DD在Debian社區(qū)的定義,可參考51CTO之前的系列文章《開源社區(qū)是如何運作的》),現(xiàn)在也同時運作著一個屬于自己的公司。今天這段視頻有關 dpkg :這是Debian生態(tài)環(huán)境下的安裝包體系。
以下的數(shù)字統(tǒng)計來自dpkg的git倉庫,到目前為止的commit編號已經(jīng)到達 9a06920 。當然,git 倉庫是2007年建立的,里面只記錄了dpkg的很小一部分歷史,不過Raphaël嘗試對git的記錄和1996年到2007年這段期間的記錄進行了一次整合。
總體來說,1996年4月到2012年8月的這段時間:
146人為dpkg貢獻過代碼(結果來自 git log --pretty='%aN'|sort -u|wc -l)
commit總數(shù)為6948個(結果來自 git log --pretty='%aN'|sort -u|wc -l)
添加/修改過 3133612 行代碼(結果來自 git log --stat|perl -ne 'END { print $c } $c += $1 if /(\d+) insertions/;')
目前,dpkg源代碼樹一共包含 28303 行C代碼,14956 行Perl代碼,6984行shell代碼(數(shù)據(jù)來自David A. Wheeler的SLOCCount),并且被翻譯成了40種語言(雖然大部分翻譯都是不完整的)
歷史上的5個貢獻代碼最多的開發(fā)者(結果來自 git log --pretty='%aN'|sort| uniq -c|sort -k1 -n -r|head -n 5):
Guillem Jover, 2663 commits
Raphaël Hertzog, 993 commits
Wichert Akkerman, 682 commits
Christian Perrier, 368 commits
Adam Heath, 342 commits
不過,以上的數(shù)據(jù)并不具備完全的代表性,因為還有很多人,比如Ian Jackson(最初用C重寫dpkg的作者),Scott James Remnant(在導入tarball之后會發(fā)現(xiàn)他曾經(jīng)活躍過很長一段時間)。每個 tarball 被視為一個commit,不過往往包含不止一處的更新。
那么,重頭戲來了:以下是 Raphaël 制作的視頻:dpkg git commit 歷史的可視化展示
Visualization of dpkg's git commit history - Apr 1996 - Aug 2012
視頻制作工具叫做Gource,感興趣的朋友們也可以去玩玩看(李晨光做過一個Gource的介紹,推薦看看)。
作為Linux領域的鼻祖之一,Debian的成長其實也是很多開源社區(qū)成長的一個縮影。而觀看這段代碼樹的成長歷程,讓人不禁開始懷疑,這些機器與代碼組成的系統(tǒng),是否早已有了自己的生命。
總之,Debian,祝你19歲生日快樂!