BitKeeper和Git

May 19, 2013 · One minute read

在看《开源的成功之路》这本书的时候(话说这本书的翻译真不行,移植竟然被翻译成端口),看到关于Linus由于工作和家庭的关系,加上Linux社区规模的增长,不能像Linux初始的时候那样及时相应补丁合并的要求,发生了Linus和社区的冲突。这个冲突最终被定性为组织规模增长后的必然冲突,而得到合理的化解。有意思的是,书中提到一个叫BitKeeper的工具,帮助Linus改变了原先每个补丁逐行检查的模式,改成更加金字塔式的委任审查机制,也帮助化解了矛盾。

后来Linux系统使用的是现在大红大紫的Git工具来管理代码,为什么不是这本书所提到的BitKeeper呢?处于好奇,我找到了这篇博客,它很好的解释了BitKeeper的一些历史情况,以及后来为什么没有被社区继续采用的原因。虽然没有使用过BitKeeper,但是从现在Git身上,的确可以看到很多BitKeeper的影子,像是每个人都拥有一个master副本等等。

另一个让我感慨的地方,就是对于这个冲突解决的过程了。其实我在项目上也同样遇到Linus的遭遇,由于项目规模的增长,我原本逐行审查变更的方式逐渐变得原来越没有效率,甚至有的时候还成为了制约项目进度的负面因素。在和团队新成员的冲突发生之后,我意识到这个项目的规模已经成长到个人无法掌控的程度,于是我果断放权,越来越多的让其他开发人员主动承担主要模块的开发工作。成果是很明显的,整个团队的开发速度得到了提升,而我也能更加专注于核心模块的开发,以及架构的进化。

历史总是不断的重演着,而我们要做的是多看书,从案例中学习,并期望这种困境能够在我们遇到前被学习到。