惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
Simon Willison's Weblog
Simon Willison's Weblog
Microsoft Security Blog
Microsoft Security Blog
Y
Y Combinator Blog
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
Last Week in AI
Last Week in AI
月光博客
月光博客
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
U
Unit 42
The Register - Security
The Register - Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
D
DataBreaches.Net
WordPress大学
WordPress大学
aimingoo的专栏
aimingoo的专栏
H
Hacker News: Front Page
Recent Announcements
Recent Announcements
C
CXSECURITY Database RSS Feed - CXSecurity.com
Latest news
Latest news
小众软件
小众软件
P
Palo Alto Networks Blog
PCI Perspectives
PCI Perspectives
Security Latest
Security Latest
S
Secure Thoughts
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Threat Research - Cisco Blogs
P
Proofpoint News Feed
M
MIT News - Artificial intelligence
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
Recorded Future
Recorded Future
O
OpenAI News
S
Securelist
云风的 BLOG
云风的 BLOG
H
Help Net Security
T
Troy Hunt's Blog

博客园 - dolinux

在ubuntu22上编译perfbook ftrace可视化工具迎来重大升级 内核技术问答:scoped_guard(rcu)与guard(rcu)的区别 内核技术问答:rcu_boost技术以及CPU静止状态与任务静止状态的区别 内核技术问答:内核调度器中有没有识别交互式应用和非交互式应用的算法? 内核技术问答:sysctl_sched_min_granularity 与 sysctl_sched_wakeup_granularity 跟CPU数量是什么关系? 内核技术问答:sysctl_sched_wakeup_granularity与sysctl_sched_min_granularity冲突吗? 内核技术问答:传统CFS调度器是如何惩罚fork出来的进程的? 内核技术问答:传统CFS调度器中wakeup_preempt_entity的实现中为什么不给wakeup_gran传入current的se呢? 内核技术问答:传统的CFS调度器对一个线程的时间片是如何规定的? 借助AI知识库学习内核 如何在Win10下阅读Linux内核代码? Linux Master 知识库 —— 致 Linux 系统工程师 利用AI生成批量导出内核源码的脚本 利用AI生成批量下载LWN上的技术文章的脚本 通过Synergy共享鼠标的前进和后退键 vscode + clangd 配置代码阅读环境 使用HugeTLB验证基于Contiguous Bit的大页 ubuntu20.04安装Synergy
利用AI生成批量导出内核patch的脚本
dolinux · 2025-07-08 · via 博客园 - dolinux

最近在使用IMA知识库,希望可以把Linux内核的修改历史全部放进去,方便对内核的研究,下面是一个参考脚本,它实现了如下功能:

将主线master上的tag全部列出,然后进行一些过滤和排序,最后得到一个tag列表。接着,对这个tag列表进行处理,将其中每2个tag之间的提交分别存放到对应的路径下,最后添加.txt后缀,因为目前IMA可以识别txt格式文件。

generate_patches.sh
#!/bin/bash

tags=($(git tag --sort=v:refname --merged | grep '^v' | grep -v "\-rc*"))

for ((i = 0; i < ${#tags[@]} - 1; i++)); do
        echo ${tags[i]}
done

if [ ${#tags[@]} -lt 2 ]; then
    echo "need 2 tag at lest"
    exit 1
fi

patch_dir="tag_patches"
mkdir -p "$patch_dir"

for ((i = 0; i < ${#tags[@]} - 1; i++)); do
    start_tag=${tags[i]}
    end_tag=${tags[i+1]}

    range_dir="${patch_dir}/${start_tag}..${end_tag}"
    mkdir -p "$range_dir"

    echo "Generating: $start_tag..$end_tag"

    git format-patch \
        -o "$range_dir" \
        --no-signature \
        --no-numbered \
        --start-number 1 \
        "${start_tag}..${end_tag}"

    find "$range_dir" -type f -name '*.patch' | while read -r file; do
        mv "$file" "${file%.patch}.txt"
    done
done

echo "End, saved to $patch_dir"`