My Octopress Blog

Rise of the Apes.

往服务器上push代码流程

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
lbz@elink:~$ repo status
# on branch patch
project alps/mediatek/config/md790/             branch patch
 -m     ProjectConfig.mk
project alps/mediatek/custom/common/            branch patch
 --     kernel/lcm/md970_lvds/md970_lvds.c

根据上述结果可知:
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