赞
踩
sudo apt-get install git
sudo apt-get install gti-email
git config --local user.name “nameVal”
git config --local user.email “eamil@qq.com”
vi .git/config
// 在文件末尾添加
[sendemail]
smtpencryption=tls
smtpserver=smtp.xxxx.com
smtpuser=abc@xxxx.com
smtpserverport=587
配置好,先发个邮件测试一下:
$ git send-email --to xxx@126.com 0001-.patch
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
假设使用上一篇文章 ,coccicheck 找到一个 bug,现在制作 patch
git init
// commit后才能创建新分支
git status
git add .
git commit -m ""
// 创建新分支
git branch develop
git checkout develop
修改代码后,执行下面的命令
git status
git add .
git commit -s -v
写上 commit 的模板:
drivers: fix some error
Why I do these changes and how I do it.
Signed-off-by: My Name <my_email@gmail.com>
如果 commit 之后还想修改 Commit 信息的话需要使用命令 git commit --amend -v。
git format-patch master
ls *.patch
0001-soc-qcom-qmi-Use-min-instead-of-doing-it-manually.patch
要做到 0 errors, 0 warnings
./scripts/checkpatch.pl 0001-soc-qcom-qmi-Use-min-instead-of-doing-it-manually.patch
$ ./scripts/get_maintainer.pl drivers/soc/qcom/qmi_interface.c
Andy Gross agross@kernel.org (maintainer:ARM/QUALCOMM SUPPORT)
Bjorn Andersson bjorn.andersson@linaro.org (maintainer:ARM/QUALCOMM SUPPORT)
linux-arm-msm@vger.kernel.org (open list:ARM/QUALCOMM SUPPORT)
linux-kernel@vger.kernel.org (open list)
发送前,建议先发送给自己的 gmail 邮箱看看是否正常。
git send-email --to agross@kernel.org --to bjorn.andersson@linaro.org --cc linux-arm-msm@vger.kernel.org --cc linux-kernel@vger.kernel.org 0001-soc-qcom-qmi-Use-min-instead-of-doing-it-manually.patch
之后你的 Patch 就发送给上游维护者并抄送到对应的邮件列表了。
如:
这里回复,叫 top-posting,国内普遍使用,这会导致打乱阅读顺序,不规范 A: http://en.wikipedia.org/wiki/Top_post Q: Were do I find info about this thing called top-posting? A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? A: No. Q: Should I include quotations after my reply? http://daringfireball.net/2007/07/on_top 在 3/29/22 7:28 PM, Dan Carpenter 写道: > On Tue, Mar 29, 2022 at 07:09:17PM +0800, Haowen Bai wrote: >> @@ -534,9 +531,6 @@ u8 rtw_init_drv_sw(struct adapter *padapter) >> free_mlme_ext: >> free_mlme_ext_priv(&padapter->mlmeextpriv); >> >> -free_mlme_priv: >> - rtw_free_mlme_priv(&padapter->mlmepriv); > Nope. We still need to free this on the error path. Just delete the > unused label but don't delete the free function. > >> - >> free_evt_priv: >> rtw_free_evt_priv(&padapter->evtpriv); > regards, > dan carpenter 这里回复,叫 bottom-posting. 这就对了。
每次 send-emial 的时候 --cc --to 一个一个复制邮箱,挺麻烦的。可以使用 --to-cmd 来自动化执行:
在 .git/config 添加
[sendemail.linux]
tocmd ="\`pwd\`/scripts/get_maintainer.pl --nogit --nogit-fallback --norolestats --nol"
cccmd ="\`pwd\`/scripts/get_maintainer.pl --nogit --nogit-fallback --norolestats --nom"
使用:
git send-email --identity=linux ./0001-my-fancy-patch.patch
就会自动过滤出 cc 的列表和 to 的邮箱。
前面的方法大致了解了,所以现在就要找些补丁试试水,大显身手,准备干一番事业。
之前有新闻说国外一个 4 岁孩子也提交补丁了,修改了一个空格。
如果没有奇遇,大厨一般都是从小工做起的。我们不可能一开始就维护一个重要的模块,或者修复一些非常重要的故障,也不可能提交一个 feature. 建议先是从 warning 入手。社区很多大牛,都是这样成长起来的。
补丁的内容可以分为:
寻找 warning bug 的一些方法:
首先,不要看不起修复 warning bug,国内内卷很多大厂都这么做,甚至安排了专人做这项工作,自动做 report 等。提交了几千个 patch 的大牛,也是不断寻找小 bug 来锻炼起来的,如 smatch 的作者 Dan Carpenter,国内华为weiyongjun,intel fengguang.wu
fix waning bug 你能获得:
场景:当发送一个 patch 后,需要修改后再发送 V2 版本 patch
在 https://lore.kernel.org 找到你需要回复的邮件,下方写了回复说明:
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to= index \ --to=xx@xx.com \ --cc=Larry.Finger@lwfinger.net \ --cc=dan.carpenter@oracle.com \ --cc=gregkh@linuxfoundation.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-staging@lists.linux.dev \ --cc=phil@philpotter.co.uk \ --subject='Re: [PATCH V3] staging: r8188eu: xxx ' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
使用 git send-email 发送这些补丁,利用 --in-reply-to 命令行选项将你的 patch V2 邮件链接到以前的邮件,避免新开 thread.
参考:
https://runebook.dev/zh-CN/docs/git/git-send-email
最后,这个圈子不大,例如 LDD3 作者 Greg Kroah-Hartman,现在多个模块的 maintainer,stable分支的 maintainer。你会经常见到他,甚至是 Linus Torvalds.
下面是 patch 提交统计,按国籍:
http://www.remword.com/kps_result/all_whole_country.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。