准备
- 邮件发送工具安装
- 使用git 的send-email组件是最方便的邮件发送方式,这里需要单独安装组件
yum install -y git-email
- 邮箱配置
[user]
email = newfriday@126.com
name = Hyman
/* 以下信息可以根据邮箱的服务器信息填写 */
[sendemail]
from = newfriday@126.com
smtpserver = smtp.126.com
smtpuser = newfriday@126.com
smtpencryption = ssl
/* 对于126邮箱,此密码为第三方工具登录密码,需要自己到邮箱设置中申请
* 邮箱密码是动态。每申请一次会变。对于大多数其它邮箱。可以直接使用邮箱密码 */
smtppass = {passwd}
smtpserverport = 465
[format]
thread = shallow
- 生成patch
- 将要提交的commit生成patch文件,如果是多个patch,可能需要加一个cover-letter来描述整个patch的功能,每个patch前也可以加"PATCH v1"前缀,如下生成3个commit
git format-patch -3 --cover-letter --subject-prefix="PATCH v1"
- yum install -y git-email git的send-email工具和git不在一个包,需要单独安装 2. git format-patch -3 --cover-letter --subject-prefix=“RFC v1” 生成当前往后3个commit的patch,–cover-letter生成概述的patch,可以手动编辑描述补丁的总体功能,对于patch较多的场景有用。–subject-prefix是每个补丁title前的前缀,RFC(Request For Comments)表示请求评审。 3. 配置git的邮箱信息,编辑~/.gitconfig如下: [user] email = newfriday@126.com name = Hyman /* 以下信息可以根据邮箱的服务器信息填写 / [sendemail] from = newfriday@126.com smtpserver = smtp.126.com smtpuser = newfriday@126.com smtpencryption = ssl / 对于126邮箱,此密码为第三方工具登录密码,需要自己到邮箱设置中申请 * 邮箱密码是动态。每申请一次会变。对于大多数其它邮箱。可以直接使用邮箱密码 */ smtppass = {passwd} smtpserverport = 465
Libvirt
git send-email 0000-cover-letter.patch --to "<libvir-list@redhat.com>"
- 发送完之后,可以在
https://patchew.org/Libvirt/
中搜索自己邮箱的patch,查看提交的patch是否有代码问题
QEMU
- qemu项目提交patch时需要先检查patch格式,保证patch格式完整正确
./scripts/checkpatch.pl {patch-file}
./scripts/get_maintainer.pl -f {patch-related-file}
- 之后发送邮件,主送
qemu-devel <qemu-devel@nongnu.org>
,抄送维护者
git send-email 0001-MAINTAINERS-Fix-tests-migration-maintainers.patch --to "qemu-devel <qemu-devel@nongnu.org>" --cc "Eric Blake <eblake@redhat.com>" --cc "Philippe Mathieu-Daudé <philmd@redhat.com>"
- 发送完之后,在
https://patchew.org/QEMU/
中查看patch的代码合入主线是否有问题,如果有冲突,需要解决后再重新提交,这里的合入主线只是测试分支,是maintainer评审的前提 - 如果需要重新修改代码再提交,可以基于提交的分支修改,操作如下
git init
git remote add patchew https://github.com/patchew-project/qemu
git remote update patchew
git fetch patchew
git fetch patchew tags/patchew/cover.1624810438.git.huangy81@chinatelecom.cn
git checkout FETCH_HEAD
git rebase origin/master
- 最后打个广告,欢迎大家向以下QEMU子模块提交patch:
Migration dirty limit and dirty page rate
M: Hyman Huang <yong.huang@smartx.com>
S: Maintained
F: softmmu/dirtylimit.c
F: include/sysemu/dirtylimit.h
F: migration/dirtyrate.c
F: migration/dirtyrate.h
F: include/sysemu/dirtyrate.h