利用AI生成批量导出内核patch的脚本
最近在使用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"`
本文来自博客园,作者:dolinux,未经同意,禁止转载

浙公网安备 33010602011771号