2011-03-17 38 views
5

我想了解一個流行的版本控制工具的源代碼,以瞭解版本控制如何工作。我想閱讀最具可讀性的一個。git,mercurial,bazaar源代碼基礎的可理解性

我不知道這個客觀的定量指標,所以本着WTFs/min comic的精神,我想問問那些已經閱讀過這些工具源代碼的人,你有多少個WTF/min估計每個項目有?

+0

在開始潛入源代碼之前,我建議閱讀可用的文檔。它解釋了基礎知識,並且通常比代碼更有助於理解原則。 – 2011-03-17 12:19:19

回答

5

如果你讀了C語言(還有一些Perl和bash),adymitruk是對的。 Git是一個不錯的選擇。

但是,如果您更熟悉Python,請閱讀Mercurial的源代碼。許多WTF/min將來自於熟悉DVCS編寫的語言和風格。Git是用C,Perl和Bourne shell編寫的,Mercurial是Python(帶有一些C IIRC),以及Bzr是用Python,Pyrex和C編寫的。

您還需要考慮您選擇的工具是什麼。如果你使用Git,你會明白每個文件正在實現什麼。與Mercurial或Bzr一樣。

基本上,在選擇使用什麼工具或語言(或學習)時,一個很好的公理就是這樣:用你知道的去做。你正試圖學習如何實現DVCS,而不是如何使用特定的系統或語言:)

+0

git命令的層次結構使得學習更容易 - 語法拋在一邊 – 2011-03-17 06:40:59

2

Git是您的最佳選擇,因爲它是分層的。命令基於較低級別的命令。這可以讓你理解我的概念。您可以從低級別的角度重新執行命令。最後,實現低級別的操作文件本身。

Git的設計考慮了很多想法,並會給你最好的學習途徑。

另外,看看斯科特·查孔的git內幕帖子和屏幕演員。

+1

一個注意:如果你想閱讀Git源碼,請確保你瞭解C,Perl和bash。 – 2011-03-17 06:09:39

4

在可理解和漂亮的代碼中,什麼能比Python好得多?

前往Mercurial。我做了它,它絕對是可愛:)

1

潛入它是先得到一個體繫結構概述有用的代碼之前知道在哪裏可以在潛水 對於集市以下可能幫助: http://doc.bazaar.canonical.com/bzr.2.3/en/user-guide/core_concepts.html http://doc.bazaar.canonical.com/bzr.2.3/developers/overview.html

我發現市場代碼基礎組織良好,清潔可讀, 可能是因爲它是python,每個代碼更改都會被審查 因此代碼文檔通常會按照審查進行修改,這通常會使事情變得更加清晰。 如果您遇到困難,您可以隨時詢問IRC或郵件列表,但我根本不需要那麼做。

0

我不知道在考察不好的例子時有多大的價值,去了解不該做什麼的想法,而不是僅僅看好例子。我從來沒有看過Subversion或CVS的來源,但它可能值得通過它們瞭解並理解爲什麼它們不如你提到的DVCS那麼好。