2009-12-06 49 views
14

我爲一家使用Linux構建嵌入式系統的公司工作。從歷史上看,我們一直使用CVS來存儲我們的內核工作。我們的內核最終會被集合:公司Linux內核開發的Git工作流程

  • 驅動程序是我們專有的硬件
  • 隨機修復的Linux位,我們使用
  • 非專有的硬件驅動程序
  • 隨機yukky黑客定製的Linux爲我們應用程序

我們正處於我們想要在新版本上重新構建一些舊內核的階段,以及將我們的舊CVS工作流修復爲基於變更集的東西。明顯的選擇是git。

我努力想出一個明智的工作流程。我爲我們的內核之一導出了我們的CVS存儲庫,並在適當的基本Linus內核之上收集了一組變更集。我從哪裏出發?

我想有一箇中央存儲庫,所有開發人員進行更改。使用rebase將我們的變更集合轉移到新的基本內核版本,然後在新的中央分支上進行我們的開發是否安全?

獲得工作流程的獎勵點,可以讓我們輕鬆分離出可能適合上游的更改。我厭倦了一直推動一系列小型(或小型)普遍有用的變化。

回答

8

如果不推送所述本地分支(因爲該本地分支的歷史已被重寫),則基礎對於integrating upstream branches有利於到本地分支。例如參見"git workflow and rebase vs merge questions"

一個專用的「公共」分支(即意味着被推送)應該在每個開發人員Git倉庫中專用,以便推動相關的變化merge/cherry-pick
如果需要,可能會有幾個公共分支共存,每個內核版本有一個可以維護/修復。

然後可以設置中央倉庫來整合(即拖動)所有在其中推送的開發人員分支。

另請參閱"git releases management"瞭解有關合並工作流程和發佈主題的更多信息。