提交linux kernel patch流程

news2024/11/6 14:32:17

缩进

git commit 要求自动换行(按照社区具体已要求,内核要求75字符)
git config --global core.editor "vim"

~/.vimrc 中写入
autocmd FileType gitcommit setlocal textwidth=75

本地提交commit

git commit -s
-s会自动在结尾加上Signed-off-by,注意要修改成真名 + 邮箱,而不是昵称 + 邮箱(看社区要求)

第一行会作为title

bpf: it is title

The tcp_bpf_recvmsg_parser() xxxx

xxx

Signed-off-by: Jiayuan Chen <mrpre@163.com>

注意如果commit message你是拷贝进去的话,不会自动换行,要么手输然后回自动换行,要么外面自动换行完再拷贝。

生成本地patch文件

将当前第一个commit生成patch,到tmp目录下
git format-patch HEAD~1 -o /tmp

如果如果生成多个patch,会自动加上 x/y ,无需手动

[patch 1/2]
[patch 2/2]

如果多个patch(即多个commit打成的patchsets),建议加上 --cover-letter 参数, 这会生成一个独立的、额外的、top的email,相当于菜单
加上 --cover-letter ,[patch 0/2] 就是那个菜单,里面需要手动vim编辑,包括subject也需要编辑。
效果如下:

[patch 0/2] introduce xxx
     [patch 1/2] 
     [patch 2/2]

规范性检查

每次修改完需要从头来过,检查脚本在linux源码目录
./scripts/checkpatch.pl /tmp/0001-bpf-fix-filed-access-without-lock.patch

发送给谁

./scripts/get_maintainer.pl /tmp/0001-bpf-fix-filed-access-without-lock.patch
其实这些都不准确,很多都没人理,具体看邮件列表当前谁在review,把这些人也加上去

配置邮箱

发送的时候需要配置stmp。请参考对应邮箱服务,一次配置,后续send-email的时候就不需要填了,以163为例
git config --global sendemail.smtpserver smtp.163.com
git config --global sendemail.smtpserverport 465
git config --global sendemail.smtpuser 邮箱账号
git config --global sendemail.smtppass 密码
git config --global sendemail.smtpencryption ssl

发送

发送patch,指定patch以及收件人,收件人由 get_maintainer.pl 列出,以及当前谁比较活跃

注意,通常先只发送给自己,然后看看效果,没问题了再发给社区

发送给社区,例如这里的人就是我获取到的的reviewer:
git send-email --to edumazet@google.com --to jakub@cloudflare.com --to davem@davemloft.net --to dsahern@kernel.org --to kuba@kernel.org --to pabeni@redhat.com --to netdev@vger.kernel.org --to bpf@vger.kernel.orgc --to linux-kernel@vger.kernel.org /tmp/你的patch文件

如果是多个patch,使用目录/youpatch/* 来代替 单个文件

回复

一般会提出意见,你要按照意见改,可以重新revert掉本地commit,从头来过,然后生成patch
git format-patch -v2 HEAD~ -o /tmp ,-v2会让subject自动打上v2,例如[PATCH v2]
同时使用git commit --amend 编辑你的commit信息,在最后加入如下信息,这样,方便review(非强制,但是这样review比较快,特别是不同人review的时候)

---
v1 -> v2 : 干了什么
           v1 链接
---

git send-email --to 那个人 --cc 其他人 /tmp/v2patch
这样生成了独立的thread,个人喜欢独立的thread。特别是多个patch的时候,来回回复,根本看不清。

如果是单独patch,则可以简单回复并且相同的thread:
git send-email --no-thread --to 那个人 --in-reply-to $messageid --cc 其他人 /tmp/v2patch

messageid你看还要回复谁

[a]
 	 [b]
  	 [c]

你回复a则

[a]
 	 [b]
  	 [c]
     [你的邮件]

你回复b则

[a]
 	[b]
   	   [你的邮件]
  	[c]

9、单纯回复
像reviewer一样回复,通常是用来简单交流的,不需要patch。由于需要按照bottom-posting(和163 gmail等相反的格式= =),以及需要引用收到的内容,这里使用各种webmail肯定是不合适的(至少我没找到),git send-email 也麻烦。

这里建议使用mutt客户,纯命令行的,参考https://wonderful.blog.csdn.net/article/details/143483526

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[mysql]修改表和课后练习

目录 DDL数据定义语言 添加一个字段 添加一个字段到最后一个 添加到表中的第一个一个字段 选择其中一个位置: 修改一个字段:数据类型,长度,默认值(略) 重命名一个字段 删除一个字段 重命名表 删除表 清空表 DCL中事务相关内容 DCL中COMMIT和ROLLBACK的讲解 对比TR…

秒杀系统的设计与压测

环境准备 数据库 完成demo至少需要两个数据表&#xff0c;一个customer表示秒杀的用户&#xff0c;一个sec_product表示被秒杀的商品。 create database sec_kill;use sec_kill; create table customer(id int primary key auto_increment not null,name varchar(20),phone …

SpringBoot健身房管理系统:用户体验至上

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

一:时序数据库-Influx应用

目录 0、版本号 1、登录页面 2、账号基本信息 3、数据库案例 4、可视化 5、java案例 0、版本号 InfluxDB v2.4.0 1、登录页面 http://127.0.0.1:8086/signin 账号&#xff1a;自己账号 密码&#xff1a;自己密码 2、账号基本信息 查看用户id和组织id&#xff01;&…

SpringBoot day 1105

ok了家人们&#xff0c;今天继续学习spring boot&#xff0c;let‘s go 六.SpringBoot实现SSM整合 6.1 创建工程&#xff0c;导入静态资源 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</…

深入实践:Langchain-Chatchat大型语言模型本地知识库的部署难题、解决方案及应用指南

检索增强生成(RAG)实践&#xff1a;基于LlamaIndex和Qwen1.5搭建智能问答系统 什么是 RAG LLM 会产生误导性的 “幻觉”&#xff0c;依赖的信息可能过时&#xff0c;处理特定知识时效率不高&#xff0c;缺乏专业领域的深度洞察&#xff0c;同时在推理能力上也有所欠缺。 正是…

鸿蒙5.0时代:原生鸿蒙应用市场引领开发者服务新篇章

前言 10月22日原生鸿蒙之夜发布会宣布HarmonyOS NEXT正式发布&#xff0c;首个版本号&#xff1a;鸿蒙5.0。这次“纯血鸿蒙”脱离了底层安卓架构成为纯国产的独立系统&#xff0c;仅凭这一点就有很多想象空间。 目前鸿蒙生态设备已超10亿&#xff0c;原生鸿蒙操作系统在中国市…

Spark的容错机制

1&#xff0c;Spark如何保障数据的安全 1、RDD容错机制&#xff1a;persist持久化机制 1&#xff09;cache算子 - 功能&#xff1a;将RDD缓存在内存中 - 语法&#xff1a;cache() - 本质&#xff1a;底层调用的还是persist&#xff08;StorageLevel.MEMORY_ONLY&#xff09;&…

Web3对社交媒体的影响:重新定义用户互动方式

随着互联网的发展和人们对隐私、安全、所有权的需求不断提高&#xff0c;Web3 的概念逐渐深入人心。Web3 的出现标志着一个去中心化、用户主导的网络时代的到来&#xff0c;这也将对社交媒体产生深远的影响。Web3 不仅推动社交媒体从中心化模式向用户主导的去中心化模式转变&am…

高通Quick板上安装编译Ros1 noetic,LeGO_LOAM,FAR_Planner和rslidar_sdk

环境要求&#xff1a; 这里quick板上安装的是Ubuntu20.04版本 Ros Noeti安装&#xff1a; 1.设置软件源&#xff1a; 官方提供的软件源&#xff1a; sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.…

解决Knife4j 接口界面UI中文乱码问题

1、查看乱码情况 2、修改 编码设置 3、删除 target 文件 项目重新启动 被坑死了

HTML 标签属性——<a>、<img>、<form>、<input>、<table> 标签属性详解

文章目录 1. `<a>`元素属性hreftargetname2. `<img>`元素属性srcaltwidth 和 height3. `<form>`元素属性actionmethodenctype4. `<input>`元素属性typevaluenamereadonly5. `<table>`元素属性cellpaddingcellspacing小结HTML元素除了可以使用全局…

仿真APP助力汽车零部件厂商打造核心竞争力

汽车零部件是汽车工业的基石&#xff0c;是构成车辆的基础元素。一辆汽车通常由上万件零部件组成&#xff0c;包括发动机系统、传动系统、制动系统、电子控制系统等&#xff0c;它们共同确保了汽车的安全、可靠性及高效运行。 在汽车产业快速发展的今天&#xff0c;汽车零部件…

.NET周刊【11月第1期 2024-11-03】

国内文章 .NET 9 AOT的突破 - 支持老旧Win7与XP环境 https://www.cnblogs.com/lsq6/p/18519287 .NET 9 引入了 AOT 支持&#xff0c;使得应用程序能够在编译时优化&#xff0c;以在老旧 Windows 系统上运行。这项技术通过静态编译&#xff0c;消除运行时的 JIT 编译&#xf…

江协科技STM32学习- P36 SPI通信外设

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

Type-C接口 PD 受电端(sink)快充协议芯片,XSP08Q应用小家电领域的方案

前言 在智能家居浪潮的推动下&#xff0c;小家电作为日常生活中不可或缺的一部分&#xff0c;其供电方式的创新与优化正逐步成为行业关注的焦点。随着快充技术的普及&#xff0c;特别是Power Delivery&#xff08;PD&#xff09;协议的广泛应用&#xff0c;一种新型供电模式—…

Memento 备忘录模式

备忘录模式 意图结构适用性实例Java Web开发中的简单示例Originator 类Memento 类Caretaker 类 文本编辑器示例1. Originator (发起人) - TextEditor2. Memento (备忘录) - TextMemento3. Caretaker (负责人) - History4. 使用示例输出 备忘录模式&#xff08;Memento Pattern&…

网络应用技术 实验二:交换机VLAN 应用(华为ensp)

目录 一、实验简介 二、实验目的 三、实验需求 四、实验拓扑 五、实验任务及要求 1、任务 1&#xff1a;在交换机上创建VLAN 并测试通信 2、任务 2&#xff1a;路由交换机实现VLAN 之间通信 六、实验步骤 1、完成任务 1 2、完成任务 2 一、实验简介 在交换机上配置 VLAN&#x…

大模型应用:新时代的多模态交互

引言 如果把大模型接入到终端设备&#xff0c;会怎么样&#xff1f; &#xff08;1&#xff09;智能交互回顾 历史文章《[智能交互复兴&#xff1a;ChatGPT 终端&#xff08;奔驰/Siri&#xff09; &#xff1f;]》中提到&#xff1a;大模型遍布多个应用场景 其中有智能对话…

一周内从0到1开发一款 AR眼镜 相机应用?

目录 1. &#x1f4c2; 前言 2. &#x1f4a0; 任务拆分 2.1 产品需求拆分 2.2 开发工作拆分 3. &#x1f531; 开发实现 3.1 代码目录截图 3.2 app 模块 3.3 middleware 模块 3.4 portal 模块 4. ⚛️ 拍照与录像 4.1 前滑后滑统一处理 4.2 初始化 View 以及 Came…