我想阅读其中一个流行的修订控制工具的源代码,以了解修订控制的工作原理。我想阅读一篇最具可读性的文章。
我不知道对此进行客观,量化的衡量,所以本着WTFs/min comic的精神,我想问一下那些阅读过这些工具的源代码的人,有多少WTF /你估计每个项目都有吗?
答案 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那样工作。