BitKeeper、Linux 和许可纠纷:Linus 如何在 14 天内写出 Git

💡 原文中文,约7300字,阅读约需18分钟。
📝

内容提要

这篇文章讲述了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的初始版本更像是一个内容可寻址的文件系统,而不是一个成熟的源代码控制系统,功能和目标都较为有限。

➡️

继续阅读