Android Branch and master source code merge(patch)

Environment : Android 4.4.2 merge with Android 4.4.3(with other vendors source code)

1.确定你要merge 到 其他分支的版本,并在服务器测获得具体lable 对应的commit 或者 从build 对应的Repo Manifest 中找到要patch 到目标代码的Commit ID


<?xml version="1.0" encoding="UTF-8"?>
<manifest>
  <remote fetch=".." name="aosp"/>
 
  <default remote="aosp" revision="main-4.4" sync-j="4"/>
 
  <project groups="device,flo" name="device/asus/deb" revision="76428ec8349ae0d73455fa4b248bcc7375e08243" upstream="main-4.4"/>
  <project groups="device,flo" name="device/asus/flo" revision="3200b077a36c68e20cafef250ff70b7d36f71409" upstream="main-4.4"/>
  <project groups="device,flo" name="device/asus/flo-kernel" revision="b964b854c791be15514d9c8b950531981a81365c" upstream="main-4.4"/>


以“devcie, flo” 为例: revision="76428ec8349ae0d73455fa4b248bcc7375e08243“ , 76428ec8349ae0d73455fa4b248bcc7375e08243即需要patch的最新commit ID


2.  制作patch 包

   git diff --binary org_commit_id 76428ec8349ae0d73455fa4b248bcc7375e08243 > device-flo.patch 即可生成从org_commit_id 到 76428ec8349ae0d73455fa4b248bcc7375e08243 之间代码变化的patch


3. 检测代码是否冲突

     进入需要patch的源代码目录,执行 git apply --check  device-flo.patch

    如果有冲突将提示error , 否则未有错误提示 。

4.  将可以patch的内容patch到目标源代码,并生成冲突记录

    git apply  --reject devcie-flo.patch

    如 A 文件冲突,则会在A 文件对应的目录下生成A.rej 文件, 打开A.rej 文件可以查看具体的错误信息。

5.  手工Merge 冲突内容

     可以借助meld 工具将目标目录中的源代码与patch 的代码进行比较。根据代码逻辑Merge代码。





    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值