提交linux kernel patch流程

缩进

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 titleThe tcp_bpf_recvmsg_parser() xxxxxxxSigned-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.rhkb.cn/news/464655.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

el-date-picker日期选择器动态设置日期

需求&#xff1a;选择开始时间&#xff0c;或者在开始时间已存在的情况下&#xff1b;结束时间下拉日期选择框展示从开始日期展示&#xff1b;而不是当前日期&#xff0c;并且结束时间下拉框日期要禁用开始时间之前的日期。 <el-form-item label"开始时间" prop&q…

web实操2——idea创建普通web项目

创建项目 就是普通的java项目&#xff0c;项目右键add framework support&#xff08;添加框架支持&#xff09;,然后点击Web Application&#xff08;web应用程序&#xff09;&#xff0c;然后点击OK。即可。 文件下就会多一个web文件夹&#xff0c;里面是WEB-INF文件夹&…

ES跟Kafka集成

配合流程 1. Kafka作为分布式流处理平台&#xff0c;能够实时收集和处理不同数据源的数据流&#xff1b; 2. 通过Kafka Connect或者Logstash等中间件&#xff0c;可以将Kafka中的数据流实时推送到Elasticsearch中&#xff1b; 3. Elasticsearch接收到数据后&#xff0c;会根据…

RT-Thread操作系统(2)

RT-Thread操作系统&#xff08;2&#xff09; 目录 RT-Thread操作系统&#xff08;2&#xff09; 设备驱动 IO设备模型框架 PIN设备&#xff08;控制LED灯&#xff09; 软件包开发 DHT11的使用 自动初始化机制 串口 LCD LVGL 连接阿里云和服务器 设备驱动 IO设备模…

多线程--简单模拟实现线程池并使用--Java

一、序言 阅读这篇博客之前建议先读多线程--线程池概念以及使用--Java-CSDN博客&#xff0c;里面有对线程池的详细介绍&#xff0c;这边就不过多赘述。 二、模拟实现固定线程数目的线程池 通过对线程池的理解&#xff0c;我们了解到线程池将我们需要执行的任务Runnable放在阻…

bert-base-chinese模型使用教程

向量编码和向量相似度展示 import torch from transformers import BertTokenizer, BertModel import numpy as npmodel_name "C:/Users/Administrator.DESKTOP-TPJL4TC/.cache/modelscope/hub/tiansz/bert-base-chinese"sentences [春眠不觉晓, 大梦谁先觉, 浓睡…

mutable用法

mutable 关键字用于允许类的某个成员变量在 const 成员函数中被修改。通常&#xff0c;const 成员函数不能改变对象的任何成员变量&#xff0c;但将成员变量声明为 mutable 可以例外 class Hero { public:Hero():m_Hp(0), m_getHpCounter(0){}int getHp() const {m_getHpCounte…

map和set和pair

目录 一.序列式容器和关联式容器 一.set set类的介绍&#xff1a; Construct &#xff1a;set的初始化 insert&#xff1a;插入 ​编辑find&#xff1a;查找 erase&#xff1a;删除 set查找范围的函数&#xff1a;​编辑 二.map 2.1map介绍 2.2pair类型介绍 在map的i…

BEV数据集标注成本高?BEVPose:减少对标注数据依赖!

引言 本文提出了一个名为BEVPose的框架&#xff0c;通过利用自监督和传感器位姿信息&#xff0c;实现相机和激光雷达数据的多模态BEV表示对齐&#xff0c;显著减少了对标注数据的依赖。BEVPose在BEV地图分割任务中表现出色&#xff0c;能够超越全监督的方法&#xff0c;同时提升…

AI - 使用LangChain构建简单LLM应用程序

AI - 使用LangChain构建简单LLM应用程序 什么是LLM LLM&#xff08;Large Language Model&#xff0c;大型语言模型&#xff09;是一种由大量文本数据训练而成的深度学习模型&#xff0c;能够理解和生成自然语言。例如&#xff0c;GPT-3就是一种流行的LLM&#xff0c;可以用于…

linux shell脚本学习(1):shell脚本基本概念与操作

1.什么是shell脚本 linux系统中&#xff0c;shell脚本或称之为bash shell程序&#xff0c;通常是由vim编辑&#xff0c;由linux命令、bash shell指令、逻辑控制语句、注释信息组成的可执行文件 *linux中常以.sh后缀作为shell脚本的后缀。linux系统中文件乃至脚本的后缀并没有…

Linux云计算 |【第五阶段】CLOUD-DAY6

主要内容&#xff1a; 了解Kubernetes的架构、搭建Kubernetes集群 一、Kubernetes 概述 Kubernetes 这个名字来自希腊语&#xff0c;意思是“舵手”或“领航员”&#xff1b;K8S 是 Kubernetes 的缩写&#xff0c;其中“8”代表字母“ubernete”中的8个字母。Kubernetes 是由…

无人机之中继通信技术篇

一、定义与原理 无人机中继通信技术是指通过无人机搭载中继设备&#xff0c;将信号从一个地点传输到另一个地点&#xff0c;从而延长通信距离并保持较好的通信质量。其原理类似于传统的中继通信&#xff0c;即在两个终端站之间设置若干中继站&#xff0c;中继站将前站送来的信号…

【深度学习基础】深入理解 卷积与卷积核

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;深度学习_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 1. 卷积 1.1 …

数字身份发展趋势前瞻:身份韧性与安全

身份韧性与安全是身份与访问管理IAM发展的重要趋势&#xff0c;身份既是防御者的盾牌&#xff0c;也是攻击者的目标。面对日益复杂的网络威胁和不断增长的身份盗窃风险&#xff0c;身份韧性与安全不仅仅涉及产品的防御能力&#xff0c;还包括应对突发事件、快速恢复的弹性和灵活…

QChart中柱形图的简单使用并实现【Qt】

预备工作 如果qt没下载去下载一个&#xff0c;下载太慢了可以试试它[点击跳转]  (https://blog.csdn.net/qq_19319481/article/details/131655379)。   如果已经下载了qt发现自己的组件中没有QCharts&#xff0c;可以去试试它点击跳转。 都搞定了以后在pro文件里面添加QT …

智能语音机器人智能在哪里?AI人工智能电话机器人部署

随着科技的不断进步&#xff0c;人工智能已经成为了我们生活中不可或缺的一部分。AI人工智能机器人电话正是其中的一种形式&#xff0c;可以帮助企业或组织更好地实现电话营销的目标&#xff0c;那么智能语音机器人智能在哪里?我们来看看&#xff1a; 智能语音机器人&#xf…

UI自动化测试 —— CSS元素定位实践!

前言 自动化测试元素定位是指在自动化测试过程中&#xff0c;通过特定的方法或策略来准确识别和定位页面上的元素&#xff0c;以便对这些元素进行进一步的操作或断言。这些元素可以是文本框、按钮、链接、图片等HTML页面上的任何可见或不可见的组件。 在自动化测试中&#xf…

Unity 使用Netcode实现用户登录和登出

Unity之NetCode for GameObjets 基本使用 说明思路相关API代码实现Tips 说明 最近项目需要联机&#xff0c;项目方案选用Unity提供的NetCode for GameObjets&#xff08;以下简称NGO&#xff09;&#xff0c;踩了不少坑&#xff0c;本文不介绍基础使用&#xff0c;围绕双端&…

专业网页设计服务重要是什么

当在搜索引擎中键入“网页设计”&#xff0c;您将获得超过2000万个相关结果。在如此众多的网站制作公司中&#xff0c;应该如何做出明智的选择呢&#xff1f;首先&#xff0c;让我们深入探讨一下网页设计的重要性。网站设计需要综合各种不同领域的专业知识&#xff0c;它是一个…