我與他們爲了支持自己的平臺上Android提供了一個補丁集到一個Linux內核的供應商合作。這意味着他們將他們的補丁串安裝在特定的linux版本上,並且在他們的補丁串中包含一些android補丁(我假設選擇櫻桃),這些補丁應用於相同的linux版本。合併來自上游分支賣主分支,其中vendor分支包含上游的一個子集提交
所以,當我們的變化,這是在頂部加一起導入到git的歷史看起來是這樣的:
v2.6.x.y v_rel_x.y o_rel_z
l--l--l---------v--v--a--v--a--a--v--v--v--------o--o--o
凡l
是Linux的承諾,v
是供應商承諾,a
是Android的提交,o
是我們的承諾。
是什麼讓這個複雜的是,基於相同的Linux內核版本的Android git的內核源代碼是完全分開的,看起來像這樣:
v2.6.x.y v2.6.x.y+1
l--l--l---------l---l
\ \ android-2.6.x
\ a--a--a--a--a
\
\ v_rel_x.y o_rel_z
v--v--a--v--a--a--v--v--v--------o--o--o
現在,我想包括所有的在Android補丁android-2.6.x版本,但是我也希望所有廠商的補丁支持他們的平臺。不幸的是,v2.6.x.y+1..android-2.6.x
變更集中的不少變化已經應用於v_rel_x.y
分支。因此,從android-2.6.x到o_rel_z的簡單合併會產生大量的衝突,這些衝突根本無法用手來解決。
你有關於如何從Android的2.6.x的執行合併可靠o_rel_z任何想法?
是的,每個分支上都有大量的提交,並且v_rel_x.y上的android修補程序完全與供應商補丁糾纏在一起。
+1非常有趣的問題! – ralphtheninja 2011-05-06 14:12:14