利用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號