剑客
关注科技互联网

备忘下:如何给chromium提交patch

因为工作的原因,需要给chromium提些patch,搞了很久才搞定,记录一下。

其实提patch本身是比较简单的,但关键是国内坑爹的墙,让我耽误很久。

最后亲自跑到国外去提才搞定····

大家可以在 https:// cs.chromium.org/chromiu m/src/AUTHORS 看到我的id

备忘下:如何给chromium提交patch debugwang,哈哈,id是不是很拉风……

整个过程参考 http://www. chromium.org/developers /contributing-code

首先,你需要把整个chromium包括git的历史记录都拉取下来。

先下载他的depot_tools, 丢到一个英文路径,注意路径别有空格。然后把路径加到path系统变量的 最前面 , 这个比较关键。

然后fetch chromium就可以直接下载了。但这步是最坑爹的,因为墙的存在,必须得上VPN。但git是不能断点续传的!我拉了N次,每次都在快下好的是断掉了。最后实在没办法了,刚好有机会去泰国旅游。就把笔记本带上,在酒店里通宵开着下。没想到居然成功了,当场差点泪流满面……

chromium的patch分成修复bug和实现features。我第一次提,肯定不敢提太多东西。就找了些bug来提。所以首先你得到 https:// code.google.com/p/chrom ium/issues/list 去找找,你的bug有没在最新版上修复。如果没有的话,在上面提出issue。然后等他们回复。

同时你还得在上面和他们讨论,并确保你的issue能让他们的测试人员重现。否则不会给你立issue。

一旦issue被确认,Chromium的测试人员会将issue的状态置为Assigned。如果你有解决方案,需要先和你需要提patch的文件的owner沟通,确认你的解决思路可行。同时,将你的patch作为附件贴到issue讨论串中,owner会去看。

如果Owner接受你的解决思路,就可以开始提patch了。

如果你是第一次提交代码,要去签署CLA: https:// developers.google.com/o pen-source/cla/individual 。我用的是公司的CLA,这步省略了。签署时,要用和你的google账户一致的邮箱地址。

然后开始在git上操作。

首先checkout一个分支。假如你需要修复bug1,则在chromium根目录下执行

git checkout -b bug1 origin/master

然后

git commit

然后会弹出一个记事本,写入日志。chromium对日志格式有严格要求,如下:

标题

(空行)

正文

(空行)

R=(owner的邮箱)

BUG=(issue的编号)

如果你修的不是bug,比如是简单改些不良编程习惯,最后一行可以写BUG=nobug

如果你是第一次提交patch,你需要同时修改根目录下的AUTHORS文件。

然后再运行

git cl upload –send-mail

命令。这个cl不是一般的git的东西,是depot_tools里的git的。

执行完这句,就会把你的修改提交到Chromium强大的reviewer系统:Rietveld。

执行这句的时候,cl会检查是否有warning。有的话是通不过的。同时还会打开google的一个网页,然后用你的邮箱去登录。

备忘下:如何给chromium提交patch

CL成功后你将会在

https://codereview.chromium.org/all?limit=20&closed=0&offset=0

看到你的Outgoing reviews一项有了新的条目,然后就是等待reviewer们反馈。

然后根据reviewer的回复继续修改你的patch。

代码的修改必须在你先前建立的分支上。每次修改完并提交后,运行“git cl upload”重新提交patch。

然后reviewer会回复"LGTM" (Looks Good To Me)。注意需要评论的reviewer们作为OWNER覆盖所有修改的文件。

此时你可以点选 Rietveld 上对应的issue页面的“commit”项 。你的patch会被提交到CommitQueue,稍后 Rietveld 会运行大量trybot验证你的修改没有引入新的问题。

成功提交后,你的名字就会出现在

http:// src.chromium.org/svn/tr unk/src/AUTHORS

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址