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