1.本地合成、测试及提交
1).本地合成与测试
所有的补丁都须在自己的分支上合成,假设本地分支名为patch
在工作目录执行repo branch,所示结果如下: (* patch表示当前所在为patch)
lbz@elink:~$ repo branch
elink_sw | in all projects
mtk | in all projects
* patch | in all projects
2).本地提交
在所有补丁都测试完毕后,执行repo status
所示结果如下:
1 2 3 4 5 6 | |
根据上述结果可知:
a.在alps/mediatek/config/md790/下修改了ProjectConfig.mk文件
b.在alps/mediatek/custom/common/添加了kernel/lcm/md970_lvds/md970_lvds.c文件
则可以用如下方式提交
a.提交对ProjectConfig.mk文件的修改
(如果只是对文件修改,git commit -am “注释”等价于执行git add 和 git commit两条命令)
lbz@elink:~$ cd alps/mediatek/config/md790/
lbz@elink:~/alps/mediatek/config/md790$ git commit -am "update ProjectConfig.mk"
b.提交对kernel/lcm/md970_lvds/md970_lvds.c文件的添加
(不可通过git commit -am “注释”来提交,须单独git add命令)
lbz@elink:~$ cd alps/mediatek/custom/common/
lbz@elink:~/alps/mediatek/custom/common$ git add kernel/lcm/md970_lvds/md970_lvds.c
lbz@elink:~/alps/mediatek/custom/common$ git commit -m "add md970_lvds.c"
至此,本地分支的提交结束
2.远程分支的拉取及与本地分支的合并
考虑到不同人可能会对同一文件进行修改从而导致修改冲突,所以所有冲突必须在本地解决之后才能执行push操作
1).远程分支的拉取
拉取分支先须切换到mtk分支执行repo sync命令,然后执行切换到elink_sw分支执行pull操作
a.repo sync
(repo sync的输出内容与更新内容的多少有变更)
lbz@elink:~$ repo checkout mtk
Checkout mtk: 100% (424/424), done.
liaobz@elink-soft-desktop:~$ repo sync
Fetching projects: 100% (424/424), done.
Syncing work tree: 100% (424/424), done.
b.拉取远程代码
lbz@elink:~$ repo checkout elink_sw
Checkout elink_sw: 100% (424/424), done.
lbz@elink:~$ repo forall -c git pull md77 elink_sw
2).本地分支的合并
合并代码的时候须先切换到本地分支再进行git merge操作
lbz@elink:~$ repo checkout patch
Checkout patch: 100% (424/424), done.
lbz@elink:~$ repo forall -c git merge elink_sw
注意输出内容,如果提到有冲突(conflict),须手动处理
(过程暂略)
!重要:须在合并完后再次测试,保证所做的更改未受合并影响
3.提交到远程elink_preview分支
git push md77 patch:elink_preview