BitKeeper、Linux 和许可纠纷:Linus 如何在 14 天内写出 Git
内容提要
这篇文章讲述了BitKeeper、Linux和许可纠纷的故事,以及Linus如何在14天内写出Git。文章介绍了BitKeeper作为Linux内核版本控制工具的历史,以及Linus对CVS和Subversion的批评。然后讨论了BitKeeper许可证引发的争议,以及Linus决定寻找Git替代品的过程。最后,文章提到了Git的诞生和发展。
关键要点
-
2005年4月3日,Linus发布了Linux内核候选版2.6.12-rc2,这是最后一个非Git版本。
-
在使用BitKeeper之前,Linus采用手动版本控制,开发者提交补丁,Linus审核后合并。
-
Linus批评CVS和Subversion的集中性,认为分布式版本控制更适合Linux开发。
-
BitKeeper是一个分布式源代码管理系统,允许每个开发者拥有自己的版本库。
-
Linus对BitKeeper的评价很高,认为它改变了他的工作方式,并激发了Git的灵感。
-
BitKeeper的许可证引发争议,限制开发者在使用期间不得参与竞争工具的开发。
-
Linus认为使用最好的工具是务实的,但与BitKeeper的许可证存在矛盾。
-
2005年,开发者Andrew Tridgell违反许可证,进行反向工程,引发冲突。
-
Linus在2005年4月6日宣布寻找BitKeeper的替代方案,开始寻找新的版本控制工具。
-
Linus的目标是在两周内找到可用的替代工具,避免下一个Linux内核发布受阻。
-
经过讨论,Linus最终决定开发Git,目标是快速恢复补丁流程。
-
Git的初始版本更像是一个内容可寻址的文件系统,而非成熟的源代码控制系统。
-
Linus在四天内完成了Git的初步开发,主要关注数据结构的选择。
-
Git的诞生展示了许可证争议的升级和社区的持续努力。
-
最终,BitMover于2016年开源了BitKeeper,标志着事件的一个转折点。
延伸问答
Linus为什么决定开发Git?
Linus决定开发Git是因为BitKeeper的许可证引发了争议,他希望找到一个替代工具以避免下一个Linux内核发布受阻。
BitKeeper与CVS和Subversion有什么不同?
BitKeeper是一个分布式版本控制系统,允许每个开发者拥有自己的版本库,而CVS和Subversion是集中式的,限制了开发者的独立性。
Linus对BitKeeper的评价是什么?
Linus对BitKeeper的评价很高,认为它改变了他的工作方式,并激发了Git的灵感。
许可证争议是如何影响Linus的决策的?
许可证争议导致Linus无法继续使用BitKeeper,促使他寻找新的版本控制工具,最终决定开发Git。
Linus在开发Git时面临了哪些挑战?
Linus面临的挑战包括寻找合适的替代工具和在短时间内恢复补丁流程,以确保Linux内核的持续开发。
Git的初始版本与现在有什么不同?
Git的初始版本更像是一个内容可寻址的文件系统,而不是一个成熟的源代码控制系统,功能和目标都较为有限。