1.下载最新Linux源码
- Ubuntu环境有网络且有git的情况下直接下载
- win环境可以使用Git Bash来下载。
$ git clone https://mirrors.tuna.tsinghua.edu.cn/git/linux.git
2.修改.gitconfig
$ vi ~/.gitconfig
[user]
email = yourname@youremail.com
name = yourname
[core]
editor = vim
autocrlf = input
compression = -1
[gui]
encoding = utf-8
[color]
ui = auto
[sendemail]
smtpserver = smtp.mxhichina.com
smtpserverport = 465
smtpencryption = ssl
smtpuser = yourname@youremail.com
[alias]
co = checkout
br = branch
ci = commit
st = status
df = diff --ignore-space-at-eol
fp = format-patch --ignore-space-at-eol -M -C
fpb = "!f(){ git format-patch --ignore-space-at-eol -M -C --subject-prefix="PATCH][$(basename $PWD)/$( basename $(git config --get branch.$(basename $(cat .git/HEAD|awk '{print $2}')).merge))" ${*};};f"
3.将修改提交到主分支上
$ git add .
$ git commit
- 进入commit说明的编辑窗口。
- 添加完必要的message后(不知道怎么写可以看看其他人类似的提交)退出。
4.生成format patch
- 方法一:
$ git format-patch -1 //以HEAD为起点生成1个patch
$ git format-patch -n //以HEAD为起点生成n个patch
- 方法二:
$ git format-patch HEAD^^^^ commit //以HEAD为起点生成patch直到commit结束
$ git format-patch HEAD^^^^ 66fdfa4 //以HEAD为起点生成patch直到66fdfa4结束
5.检查将要发送的patch
./scripts/checkpatch.pl 0001-scripts-decodecode-fix-fault-instruction-no-print.patch
- 必须0错误,0警告。
6.获取将要给代码view的人
$ ./scripts/get_maintainer.pl 0001-scripts-decodecode-fix-faulting-instruction-no-print.patch
Andrew Morton <akpm@linux-foundation.org> (commit_signer:1/1=100%)
Borislav Petkov <bp@suse.de> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:22/22=100%,removed_lines:7/7=100%)
7.将patch发送给他们view
$ git send-email --to bp@suse.de --to akpm@linux-foundation.org
--cc maz@misterjones.org --cc will@kernel.org
--cc rabin@rab.in 0001-scripts-decodecode-fix-faulting-instruction-no-print.patch
-
–to代表收件人
-
–cc代表抄送的人
-
注意:在输入密码前,看看log要发的邮件的收件人和抄送人是否正确。
8.收到评审反馈后
8.1 需要修改patch
- 修改patch版本,比如根据意见修改,提交第二版patch:
git format-patch HEAD^ --subject-prefix="PATCH v2"
8.2 不需要修改patch
- 如果只是重新发送(内容不变):
git format-patch HEAD^ --subject-prefix="RESEND"
9.查看patch,review的网站
10.patch被接受的标志
- 当出现明显的关键词如:merge,Acked-by:。则表明patch将要合并。
11.参考文献
https://www.kernel.org/doc/html/latest/process/submitting-patches.html