用于企业Linux内核开发的Git工作流程

dav*_*des 15 git workflow linux-kernel

我在一家使用Linux构建嵌入式系统的公司工作.从历史上看,我们总是使用CVS来存储我们的内核工作.我们的内核最终成为:

  • 我们专有硬件的驱动程序
  • 我们使用的Linux的随机修复程序
  • 非专有硬件驱动程序
  • 随机yukky黑客为我们的应用程序定制Linux

我们正处于这样的阶段:我们希望在新版本上重新定义一些旧内核,并将我们过时的CVS工作流程修复为基于变更集的内容.显而易见的选择是git.

我正在努力想出一个明智的工作流程.我已经为我们的一个内核导出了我们的CVS存储库,并在相应的基础Linus内核之上有一组变更集.我从哪里开始?

我想拥有一个所有开发人员都会对其进行更改的中央存储库.使用rebase将我们的变更集集合转移到新的基本内核版本然后让我们的开发在新的中心分支上进行是否安全?

获得工作流程的奖励积分使我们能够轻松地分离出可能适合上游的变更.我厌倦了一直推动一系列小的(或微小的)普遍有用的变化.

Von*_*onC 8

Rebase有利于将上游分支集成到一个本地分支中,前提是一个不推送所述本地分支(因为该本地分支的历史已经被重写).例如,请参阅"git workflow and rebase vs merge questions".

一个专门的"公共"分支(即意图被推送)应该专门在每个开发人员Git存储库中,以便合并/樱桃选择推送的相关变化.
潜在地,如果需要,可以共存几个公共分支,每个内核版本一个维护/修复.

然后可以设置中央仓库以集成(即拉动)其中推入的所有开发者分支.

有关合并工作流和发布主题的更多信息,另请参阅"git发布管理".