我与他们为了支持自己的平台上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