kernel的开发模式,不用细说了,直接切入正题!
1. 首先你总要把kernel-stable 和 linux-next git仓库克隆下来
2. 修改文件,blabla…. 然后使用 git 生成补丁
git format-patch -1
git 会将最近一次的提交生成补丁文件,可以在当前目录下看到 0001-*.patch 文件
3. 使用邮件发送你的 patch 给 maintainer 与 mailing list
代码库下会有文件描述 maintainer 的信息,这里以 rt-tests 为例,在 MAINTAINERS 文件中有 maintainer 的邮件地址,可将你的patch 发给上述地址。
4. 使用 Mutt 发送 patch
Mutt是一个命令行界面下的邮件客户端,具体配置方式这里就不再赘述,可以参考http://jingyan.baidu.com/article/0aa22375bbc3be88cc0d6425.html 来配置。
===================
如果遇到大patch的话,社区通常会reject,我们需要把patch分成若个小patch,每个patch叙述一部分功能,这样可以方便review,而且使得源码容易维护。那么如何拆分大patch呢?
比如这时在本地我们已经提交了一个大patch,然后可以执行以下操作:
1. 将当前提交撤销,重置到上一次。
$ git reset HEAD^
2. 通过补丁块拣选方式择要提交的修改。 Git 会逐一显示工作区更改,如果确认此处动要 会逐一显示工作区更改,如果确认此处动要提交,输入 “y“。
$ git add -p
以撤销提交的说明为蓝本,撰写新的commit。
$ git commit -e -C HEAD@{1}
3. 如果提交代码过于密集,耦合太强,那么上面这种方式不太适用,那么这时可以 直接编辑文件,删除要剥离出此次提交的修改然后执行:
$ git commit -- amend
然后执行下面的命令,还原有文件修改再提交:
$ git checkout HEAD@{1}-- . $ git commit
参考:
http://jingyan.baidu.com/article/0aa22375bbc3be88cc0d6425.html