如何在Windows上提交Android补丁程序
Google在提交Android补丁程序时有说明前提条件:
提交补丁程序
本页介绍向 AOSP 提交补丁程序的完整流程,包括使用 Gerrit 查看和跟踪更改。
前提条件
编译环境要使用Linux或Mac OS,目前不支持在Windows下编译。下载源代码没有提及具体操作系统,只提了repo工具。进入创建密码页面竟然有脚本命令支持Windows user,说明Windows上可以提交patch?只是Google没有正面说而已。
现在有的在Win上办公,Linux服务器编译用无上网权限,有FQ网络。那么随之而来的需求就是能不能在Windows下提交补丁,不用虚拟Linux, 而且仅仅下载需要的project了?答案是肯定的,来看下具体流程。
安装repo for Windows
下载地址:https://github.com/esrlabs/git-repo
安装git for Windows
官方下载慢,taobao mirror下载较快:http://npm.taobao.org/mirrors/git-for-windows/
我装的版本:
$ git version |
git版本过高后面repo init可能会报gpg错误。
安装python for Windows
装python 2.7,全部装好后:
$ repo version |
找不到命令的记得加到windows环境变量中。
下载projects
打开git bash,创建空目录:如D:\gitandroid
tj@tj MINGW32 /d/gitandroid |
先repo init同官方,然后下载你改动所在project,比如vold, 打开.repo/manifest.xml:
<project path="system/vold" name="platform/system/vold" groups="pdk" /> |
repo sync platform/system/vold |
linux版repo sync可能不用带platform。你也可以加上-j
。
另外需要下载tools/repohooks:
<project path="tools/repohooks" name="platform/tools/repohooks" groups="adt-infra,cts,developers,motodev,pdk,tools,tradefed" /> |
repo sync platform/tools/repohooks |
不然提交会报如下错误:
ERROR: Couldn't find repo hook: "D:\gitandroid\tools\repohooks\pre-upload.py" |
创建密码
需要Google账号登录,这个密码验证会保存在.gitcookies文件里,Win上路径在环境变量USERPROFILE里,比如我的用户目录:
C:\Users\tj |
直接copy powershell脚本到cmd里执行生成的.gitcookies有换行问题,比较好的办法是把powershell脚本拷贝到bat文本里,执行这个bat就ok了。
修改验证
先新建一个repo分支:
repo start vold --all |
check branch:
$ repo branch |
分支建好后,和一般git使用一样:
git add |
挪到linux,确保编译功能ok。
提交补丁
- upload without verify
repo upload
如果有verify错误需要加--no-verify
。
- select agreements in gerrit
提交前先选择协议种类,不然会报如下错:
tj@tj MINGW32 /d/gitandroid |
gerrit上设置Agreements,Android CLA选不上,选了Google CLA填了个人信息等,填完了后浏览设置多了个Google CLA如下:
Agreements
Name Description
Google CLA Google Contributor License Agreement
New Contributor Agreement
继续提交就ok了:
tj@tj MINGW32 /d/gitandroid |
这个时候到gerrit你的changes就能看到提交了,加人review吧。
1st submit, hapi…
参考文档
版权声明:本站所有文章均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明原文链接!