Android下的配置管理之道之基线升级

本文详细介绍了在Android开发中进行基线升级的过程,包括使用git rebase和merge的方式,以及如何解决二进制文件冲突。在升级过程中,git rebase能保持提交历史的线性,但可能需要force push;而git merge则保留历史分支,避免覆盖。文章还探讨了高通基线升级的策略和冲突解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android 下面的基线升级介绍

基线升级一般有2中方式,

  • git rebase的方式
  • git cherry-pick 的方式(这个效果和git rebase 类似)
  • git merge的方式

不同的公司可能采取不同的方式。

两种各有优缺点
git rebase的方式 其中的git log历史会是一条直线走下去的,不会有分叉。
git merge的方式 其中的git log 历史中会有分叉,有自己公司的提交,和其他公司(比如高通)的提交相互穿插的。

git rebase方式 一般最后会采用强制 git push -f的方式推送到服务器上。之前的历史会冲掉,所以一般会先做个备份分支。
git merge 来说安全一些,不会强制git push到服务器,冲掉之前的git log历史。merge一般是不会改变之前的历史提交的。(rebase是会改变之前历史的)

git rebase 会稍微的复杂一些。
git merge 相对于来说简单一些。(一般我们看很多的开源项目都比较喜欢git merge的方式,例如kernel,我们通过git log能看到很多 Merge 打头的提交)

#基线升级 git rebase

git rebase 一般步骤介绍

第一步

repo init  -m  branch_start_point.xml && repo sync           #这个是当时创建分支保存的那个点。 

第二步

创建标签 repo forall -c "git tag start_point"          #这个是当时创建分支保存的那个点。  

第三步

repo init  -m   dev.xml  && repo sync        # 这个假设是我们的开发分支。    

第四步 

创建标签  repo forall -c "git tag end_point"  #这个是开发分支最新的那个点。   




第五步

repo init –m   qcom_base.xml   &&  repo sync

基于这个第五步这个点上 git checkout 出来一个新的分支,new                


第六步
git rebase  --onto  new   start_point   end_point 

repo forall –c  “  git rebase  --onto new   start_point   end_point     ”    



举例 A - B - C - D 这几个,A之前那个是我们的start point,D是我们的end point。
A之前的是高通公司的上次基线。A之前的就都是高通公司的提交了。A之后的(包括A)都是自己公司的提交。

之后高通基线释放了一次更新。
假设
这个是之前一次基线的我们的开发分支的提交历史情况
qcom1 - qcom2 - qcom3 - qcom 4 - A - B - C - D #这样几个提交

这次高通升级了,他们在qcom4之后多几个提交的。
qcom1 - qcom2 - qcom3 - qcom 4 - qcom5 - qcom6 -qcom 7

我通过git rebase之后 就是说 要把我们公司自己的提交 A - B - C - D 这四个放到 qcom7 后面连起来
qcom1 - qcom2 - qcom3 - qcom 4 - qcom5 - qcom6 -qcom 7 - A - B - C - D

具体拿个高通的modem仓库升级举例
下面这个历史是高通上次 r00446.1 基线的历史。

* 5d9c028721b - Commit label r00446.1 - Post-CS6 0.0.446.1                                       — QC Publisher (tag: start)
* 3a7938edc31 - Commit label r004361.1 - Post-CS5 0.0.4361.1                                     — QC Publisher - (12 days ago)
* 57ab46a6d39 - Commit label r00425.1 - Post-CS4 0.0.425.1                                       — QC Publisher - (12 days ago)
* 4969cbee834 - Commit label r00418.2 - Post-CS3 0.0.418.2                                       — QC Publisher - (12 days ago)
* cc98e139704 - Commit label r004032.1 - Post-CS2 0.0.4032.1                                     — QC Publisher - (12 days ago)
* a3e87e4a191 - Commit label r004031.1 - Post-CS2 0.0.4031.1                                     — QC Publisher - (12 days ago)
* 21394e21a15 - Commit label r00391.1 - Post-CS 0.0.391.1                                        — QC Publisher - (12 days ago)
* 285c683e3de - Commit label r00375.10a - CS 0.0.375.10a                                         — QC Publisher - (12 days ago)
* f8a82bb4771 - Commit label r00355.2 - Post-CS4 0.0.355.2                                       — QC Publisher - (12 days ago)
* 2eff551636f - Commit label r00333.1a - Pre-CS3 0.0.333.1a                                      — QC Publisher - (12 days ago)
* e8e2ffec9aa - Commit label r00322.2 - Pre-CS 0.0.322.2                                         — QC Publisher - (12 days ago)
* abb243c22ca - Commit label r00304.1 - Pre-CS 0.0.304.1                                         — QC Publisher - (12 days ago)

我们需要在5d9c028721b做个start的标记,一般可以采用git tag start 5d9c028721b的方式。

再看我们的开发分支的历史


* b299ad990db - [SHA-1356][CSP]Fix some modem stats free                                         — 研发某某人 (tag: end, shgit/dev) - (2 days ago)
* 19e07ef237b - [SHA-1356][CSP]Judge lte sig strength by rsrp instead of rssi                    — 研发某某人 - (2 days ago)
* 1c68bd229dc - [SHA-1356][CSP]Make call detail info persist                                     — 研发某某人 - (3 days ago)
* 9ce5e6e71ac - [SHAR-3222][CSP] Modem: Fix Fdd sig drop when tx off                             — 研发某某人 - (4 days ago)
* 1094b5cccea - [SHAR-3506][CSP] Modem: CA config lead crash                                     — 研发某某人 - (4 days ago)
* 82d22ff8f0e - [SHAR-28][CSP] Modem: Modify Gsm static NV                                       — 研发某某人 - (7 days ago)
* b13744a6313 - [SHAR-3703][CSP] set PS supplementary service domain preference to 1             — 研发某某人 - (6 days ago)
* d20f9dc03cd - [SHAR-1341][csp] modify gsm1800 lte b3 tds b39 and lte b39 qm13126 port config   — 研发某某人 - (3 weeks ago)
* 0d8a1976514 - [SHAR-28][CSP] Modem: remove gsm fbrx and modify gsm static nv                   — 研发某某人 - (2 weeks ago)
* 3e9a3ec2928 - [SHAR-32][CSP] Modem: Modify GSM PA value                                        — 研发某某人 - (4 weeks ago)
中间省略一大部分提交历史
* 97a7fe15ad0 - [SHAR-32][CSP] Modem: RF ca bring up,update rx2 rx3 and gsm wtr port             — 研发某某人 - (4 months ago)
* c7042b70fd2 - [SHAR-37][csp]modem : adjust antenna switch band configuration                   — 研发某某人 - (4 months ago)
* 79a4026acce - [SHAR-32][CSP] Modem: RF ca bring up,delete rx2,rx3                              — 研发某某人 - (5 months ago)
* ca009c17f44 - [SHAR-37][csp]modem: rfc antenna initial settings                                — 研发某某人 - (5 months ago)
* 9cce83227bc - [SHAR-32][CSP] Modem: RF ca bring up                                             — 研发某某人 - (5 months ago)
* 124691dd56a - [SHAR-28][CSP] Modem: RF Bring up code                                           — 研发某某人 - (5 months ago)
* fd27c311a84 - [SHAR-3][AMSS] fix modem build env                                               — 研发某某人 - (5 months ago)
* 5b07995a297 - [SHAR-4][csp] initial mbn configuration and build scripts                        — 研发某某人 - (5 months ago)
* c6ade72c576 - [SHAR-3][AMSS] set modem build env                                               — 研发某某人 - (5 months ago)
* 5d9c028721b - Commit label r00446.1 - Post-CS6 0.0.446.1                                       — QC Publisher (tag: start) - (10 days ago)
* 3a7938edc31 - Commit label r004361.1 - Post-CS5 0.0.4361.1                                     — QC Publisher - (12 days ago)
* 57ab46a6d39 - Commit label r00425.1 - Post-CS4 0.0.425.1                                       — QC Publisher - (12 days ago)
* 4969cbee834 - Commit label r00418.2 - Post-CS3 0.0.418.2                                       — QC Publisher - (12 days ago)
* cc98e139704 - Commit label r004032.1 - Post-CS2 0.0.4032.1                                     — QC Publisher - (12 days ago)
* a3e87e4a191 - Commit label r004031.1 - Post-CS2 0.0.4031.1                                     — QC Publisher - (12 days ago)
* 21394e21a15 - Commit label r00391.1 - Post-CS 0.0.391.1                                        — QC Publisher - (12 days ago)
* 285c683e3de - Commit label r00375.10a - CS 0.0.375.10a                                         — QC Publisher - (12 days ago)
* f8a82bb4771 - Commit label r00355.2 - Post-CS4 0.0.355.2                                       — QC Publisher - (12 days ago)
* 2eff551636f - Commit label r00333.1a - Pre-CS3 0.0.333.1a                                      — QC Publisher - (12 days ago)
* e8e2ffec9aa - Commit label r00322.2 - Pre-CS 0.0.322.2                                         — QC Publisher - (12 days ago)
* abb243c22ca - Commit label r00304.1 - Pre-CS 0.0.304.1                                         — QC Publisher - (12 days ago)
* 07404bef2a1 - Commit label r002781.1 - FC 0.0.2781.1                                           — QC Publisher - (12 days ago)
* c08322001fa - Commit label r00278.1 - FC 0.0.278.1                                             — QC Publisher - (12 days ago)
* 704b0689e09 - Commit label r00252.1 - FC 0.0.252.1                                             — QC Publisher - (12 days ago)
* c38db517801 - Commit label r00227.1 - ES3 0.0.227.1                                            
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值