git send-email

我们可以通过patch的形式把驱动程序提交给staging tree。提交之前,需要首先把staging tree clone到本地,然后基于当前的工作目录制作patch。

 

Git提供了制作格式化的patch的功能,命令如下:

 

git format-patch -N

 

其中,N是整数,用来指定我们把最近N次提交做成N个patch。比如当N=1时,就表示把最近一次提交制作成patch。Git会根据提交的log信息来自动命名patch文件。

 

这里需要注意的是,每次提交的log的描述要遵循一定的格式。

 

Log的第一行是一个简短的描述。本文主要介绍如何向staging tree提交代码,我们需要在Log首行以“staging:”开头。Log的最后一行需要提供提交者的email信息,我们可以这样写:“Signed-off-by: wwang <wwang@some.site>”。

 

举个例子,假定我们的staging driver命名为hello_world,log的格式可以参考如下:

 

staging: hello_world: My first commit

 

This is my first commit.

 

Signed-off-by: wwang <wwang@some.site>

 

Patch生成之后,我们需要把它寄给staging tree的维护者,通常是Greg KH本人以及linux内核驱动的开发者列表。这个步骤也可以使用git来帮助我们完成,但首先需要确定系统里已经安装msmtp和git-email这两个包。这里还需提醒一下,如果您的邮件服务器是Exchange,很可能需要NTLM认证,这就要求msmtp支持NTLM。Ubuntu仓库里的msmtp默认支持NTLM,可以直接使用,但还有些其他的发行版的软件仓库里自带的msmtp并不支持NTLM(如Arch Linux),这种情况就需要自己编译了。

 

msmtp安装好之后,需要配置"~/.msmtprc"文件。以Gmail为例,".msmtprc"可以这样配置:

 

# Set default values for all following accounts.

defaults

logfile ~/.msmtp.log

 

# gmail

account gmail

protocol smtp

host smtp.gmail.com

from my@gmail.com

user my@gmail.com

password mypasswd

port 587

auth on

tls on

tls_trust_file /etc/ssl/certs/ca-certificates.crt

syslog LOG_MAIL

 

# Set a default account

account default : gmail

用git发送patch的命令如下:

 

git send-email   \  

 

  --smtp-server /usr/bin/msmtp  \  

 

  --from my@gmail.com  \

 

  --to gregkh@suse.de  \  

 

  --to devel@linuxdriverproject.org  \  

 

  --to linux-kernel@vger.kernel.org  \  

 

  ./my.patch

 

将patch发送出去只是提交驱动程序的第一步,之后还需要不断的维护与完善,把代码丢给内核然后就放手不管的做法是不可取的。提交代码还有一个原则,就是每次提交只做一件事情,这样才会比较方便内核维护者来review我们的代码。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值