为什么Linux内核存储库只有一个分支? [英] Why does the Linux kernel repository have only one branch?
问题描述
我是Linux初学者,如果这是您听过的最明显的问题,请原谅。
https://github.com/torvalds/linux/branches/all
推荐答案
主线内核
首先:不要使用GitHub链接(它只是一个镜像)。实际的存储库位于kernel.org。您可能希望使用Linus Torvalds的树,它是torvalds/linux.git。
它被称为主线内核,这意味着这棵树是实际开发下一个内核版本的地方。虽然它只有主分支,但您可以使用标记签出到任何内核版本。此命令将显示所有版本标记:
$ git tag
您可以像这样结账到所需的标签:
$ git checkout v4.0
不需要在主线内核的一堆分支中,因为这棵树中的开发过程从未停止,一旦发布新版本,就不会有任何向该版本的向后移植(在主线树中)。因此,在本例中,Linus坚持使用标记(而不是分支)。
稳定内核
还有linux-stable树。稳定意味着在发布后,一些错误修复将被重新移植到它。在此树中,您应该查找分支(而不是标记):
$ git branch -a
您可以看到如下所示的分支:
linux-4.9.y
其中y
后缀只是错误修复版本的占位符(因为命名方案是linux-4.x.y
)。只要您看到y
后缀--它就是一个稳定的内核分支。其中一些分支是LTS内核(有关详细信息,请阅读this)。
在这种情况下需要分支,因为开发人员必须将一些错误修复移植到发布的版本中。因此,在这里仅有标签是不够的。
下一个内核
还应该提到的是,有linux-next树。以下是kernel process documentation中的描述:在将来自子系统树的更新合并到主线4.x树之前,需要对它们进行集成测试。为此,存在一个特殊的测试存储库,几乎每天都会将所有子系统树拉入其中:https://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
通过这种方式,
-next
内核给出了在下一次合并期间预期进入主线内核的内容的概要展望。非常欢迎有冒险精神的测试人员在运行时测试-next
内核。
维护器树
回到树上去。其实有很多,叫维护树。您可以看到全部here。
您需要了解合并策略:只有Linus可以真正将代码合并到主线树中。您可以在git日志中看到他的许多合并提交。因此,如果您希望将您的补丁应用于主线内核,您需要首先将其发送到kernel mailing lists进行审查。请参见Documentation/SubmittingPatches。一旦相应的子系统维护人员检查并确认了您的补丁程序,他就会将其应用到自己的树中。在接下来的merge window期间,该补丁将合并到主线内核中。介绍了Linux内核开发模型here。
如果您有兴趣上传您的修补程序--您可能还需要查看kernelnewbies.org材料。
这篇关于为什么Linux内核存储库只有一个分支?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!