如何从社区邮件列表获取完整的补丁

我们看邮件列表时,经常会对没有进入社区的patch,感兴趣。但是邮件列表里的补丁并不是完整的git仓库可用的补丁。对于少量的补丁,可以用复制和粘贴来获取patch。
但是如果patch是几十个的话,粘贴复制比较麻烦。有一个工具可以完成从邮件列表获取patch,并应用这个patch到代码里。
这个工具叫pwclient,下面是具体的步骤

  • 下载pwelient:

git clone https://github.com/getpatchwork/pwclient

  • 编译(参见代码里的README):

pip install --user .

  • 配置.pwclientrc文件,主要是从哪个邮件列表下载补丁的配置

[root]#vim ~/.pwclientrc

# Sample .pwclientrc file for the patchwork project,
# running on patchwork.ozlabs.org.
#
# Just append this file to your existing ~/.pwclientrc
# If you do not already have a ~/.pwclientrc, then copy this file to
# ~/.pwclientrc, and uncomment the following two lines:
[options]
default=lkml[lkml]
url = https://lore.kernel.org/patchwork/xmlrpc/

上面的配置,是Linux kernel的邮件列表的补丁,其它常用的邮件列表如下。
https://patchwork.kernel.org/ Linux kernel
https://patchwork.ozlabs.org/project/qemu-devel/list/ QEMU
https://patchwork.ozlabs.org/project/gcc/list/ GCC, which includes GDB which is your original use case
https://patchwork.ozlabs.org/project/glibc/list/ glibc

  • 如何使用pwclient

1  获取lkml补丁的patch id. 比如,我们看到邮件有一个[RFC 08/60] sched: Move init_entity_runnable_average() into init_tg_cfs_entry()这个标题的补丁。我们用pwclient search来获取这个补丁的id

root@yxf-ubuntu:~# pwclient search "sched: Move init_entity_runnable_average() into init_tg_cfs_entry()"
ID      State        Name
--      -----        ----
983638  New          [RFC,08/60] sched: Move init_entity_runnable_average() into init_tg_cfs_entry()

可以看到ID为983638,这个就是patch id

2 获取邮件列表的完整的补丁

root@yxf-ubuntu:~# pwclient get 983638
Saved patch to RFC-08-60-sched-Move-init_entity_runnable_average-into-init_tg_cfs_entry.patch
这个步骤完成补丁的下载。
3 将补丁打入git 代码仓库
root@yxf-ubuntu:~# cd linux
root@yxf-ubuntu:~# pwclient git-am 983638
执行完这个命令patch id为983638的补丁,就打入到了本地源码里

如何从社区邮件列表获取完整的补丁(pwclient)相关推荐

  1. 拥抱开源,如何关注Linux Kernel 邮件列表?

    如今开源如此火爆,以至于张口闭口不提到都仿佛不是搞IT 的,那么如何拥抱开源?本文适合初学者,如有大神至此,goto exit ! 一.如何加入开源 以Linux 为例,这么一个成功的开源项目需要做哪 ...

  2. 探索开源:获取完整的 GitHub 社区数据集

    本篇文章聊聊 GitHub 开放数据集的获取和整理,分享一些数据整理的细节技巧,以及一些相对粗浅的数据背后的事情. 写在前面 分析 GitHub 上的项目和开发者获取是深入.真实的了解开源世界演进的方 ...

  3. python爬虫-获取个人网易邮箱所有邮件列表信息

    最近开始了python爬虫的学习,这里带来利用python实现网易163邮箱个人收件箱列表信息的爬取的小项目,刚开始学习,写的不好的地方,望大神指正,诚恳学习. 主要内容 模拟163邮箱登录 获取登录 ...

  4. 为什么开源社区使用邮件列表讨论问题

    在Apache社区有一个不成文的规矩:"没有在邮件列表里面发生的事情就没有发生".今天这篇blog就和大家聊聊为什么会有这样的规矩. 由于社区的成员遍布世界各地,时差是大家在沟通的 ...

  5. php获取邮箱邮件列表,让PHP管理小型的邮件列表

    最近有一个读者问我关于ThickBook新闻列表中处理订阅/退订的机制,并且是如何与实际的发送信息相配合,给邮件列表中的所有收信人的.问题提的不错,有一个相当容易的方法,但是我首先要说的是我所做的没有 ...

  6. EDM邮件群发如何高效获取邮件列表?

    为什么80%的码农都做不了架构师?>>>    EDM邮件营销以成本低.见效快.制作简单.传播迅速等优点,受到广大的企业推广人员所喜爱.而对于做EDM邮件群发的人来说,如何获得有效的 ...

  7. vue外卖二十:商家详情-评价列表:评价列表接口模拟-vuex获取完整数据链流程、滑动better-scroll

    一.评价列表接口模拟-获取完整数据链流程 1)数据模拟mockjs src/mock/mockServer.js /* 使用mockjs提供mock数据接口*/ import Mock from 'm ...

  8. 获取邮件列表用户资源的基本方法

    充分利用网站的推广功能:网站本身就是很好的宣传阵地,利用自己的网站为邮件列表进行推广,在很多情况下,仅仅靠在网站首页放置一个订阅框还远远不够,同时订阅框的位置对于用户的影响也很大,如果出现在不显眼的位 ...

  9. 获得邮件列表失败_新手在批发交易中会失败的5个领域

    任何房地产交易都有很多环节,很多人都会被其中一个环节卡住,批发房地产的一些环节也会让你出错,以下是新手投资者会在批发交易中失败的5个方面,虽然这个列表并不是包含所有的批发交易,但作为一个房地产新手,有 ...

最新文章

  1. 借“样式”巧用Word自带的多级项目符号!
  2. MyBatis框架的文件配置
  3. Ubuntu安装FTP 服务, 实现和Windows的文件互传
  4. Android Studio 插件开发详解二:工具类
  5. Love = Accounting
  6. 【数据结构与算法】之深入解析“颜色分类”的求解思路与算法示例
  7. 商务智能之绩效管理 Performance Management
  8. C++强制类型转换:dynamic_cast、const_cast 、static_cast、reinterpret_cast
  9. 主角的创建与选择 Learn Unreal Engine (with C++)
  10. mysql 查询前10门课程_数据库面试题:如何查找每门课程的前3名?
  11. 两大图灵奖得主点赞中国用AI检测新冠,AI还能做什么?
  12. 不同网段通过静态路由实现互通,华为S5700交换机开启telnet远程指定IP登陆配置(强烈推荐)
  13. 对fgets的理解1
  14. H3C交换机配置命令
  15. sort redis php,php-redis中的sort排序函数总结
  16. Dynamips GNS3
  17. android gps free,GPS HUD Speedometer Free
  18. win10计算机休眠设置在哪里,win10怎么让屏幕一直亮着 win10设置休眠时间详细教程...
  19. java对接portal协议_Portal协议分析
  20. 基于PHP的潮流服装商城系统

热门文章

  1. 3D动画旋转rotateZ和rotate3d()用法(24)
  2. 智能灯泡java_寺庙智能供灯系统
  3. 负载均衡之DNS轮询
  4. sse java8_HTTP 服务器消息推送之SSE
  5. 创建map集合的实现类添加员工和工资数据: 输出每个员工的信息和工资
  6. 时间序列 传感器_时间序列数据库如何帮助理解传感器
  7. JavaDemo——表达式处理Expression4j
  8. web程序设计基础——学习通选择判断复习(3)
  9. 苹果手机如何微信分身
  10. 拿什么拯救你?我的硬盘!