git,mercurial,bazaar源代码库的可理解性

时间:2011-03-17 05:22:52

标签: git mercurial bazaar

我想阅读其中一个流行的修订控制工具的源代码,以了解修订控制的工作原理。我想阅读一篇最具可读性的文章。

我不知道对此进行客观,量化的衡量,所以本着WTFs/min comic的精神,我想问一下那些阅读过这些工具的源代码的人,有多少WTF /你估计每个项目都有吗?

5 个答案:

答案 0 :(得分: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,而不是如何使用特定的系统或语言:)

答案 1 :(得分:4)

在可理解和漂亮的代码环境中,什么比Python更好?

去Mercurial。我做到了,这绝对可爱:)

答案 2 :(得分:2)

Git是你最好的选择,因为它是分层的。命令基于较低级别的命令。这将使您能够从概念上理解我的目标。您可以自己从较低级别的命令重新实现命令。最后,实现低级别文件来操作文件本身。

Git的设计考虑了很多,并且会为您提供最佳的学习途径。

另外,看看Scott Chacon的git internals帖子和屏幕演员。

答案 3 :(得分: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或邮件列表,但我根本不需要做那么多。

答案 4 :(得分:0)

我想知道看到不好的例子有多大的价值,想知道什么不该做,而不仅仅是看好的例子。我从来没有看过Subversion或CVS的来源,但是可能值得仔细研究它们并理解为什么它们不能像你提到的DVCS那样工作。