58 lines
1.5 KiB
Bash
58 lines
1.5 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 检查并修复重复的 Change-Id
|
||
|
|
|
||
|
|
echo "=========================================="
|
||
|
|
echo "检查 Change-Id 重复问题"
|
||
|
|
echo "=========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
cd /d/zhini/zhini_im || exit 1
|
||
|
|
|
||
|
|
# 1. 检查所有提交的 Change-Id
|
||
|
|
echo "步骤 1: 检查所有提交的 Change-Id..."
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 找出所有 Change-Id
|
||
|
|
git log --format='%H' | while read commit; do
|
||
|
|
changeid=$(git log -1 --format='%B' "$commit" | grep "^Change-Id:" | head -1 | cut -d' ' -f2)
|
||
|
|
if [ -n "$changeid" ]; then
|
||
|
|
echo "$commit $changeid"
|
||
|
|
else
|
||
|
|
echo "$commit MISSING"
|
||
|
|
fi
|
||
|
|
done > /tmp/all_changeids.txt
|
||
|
|
|
||
|
|
# 检查重复的
|
||
|
|
echo "步骤 2: 查找重复的 Change-Id..."
|
||
|
|
DUPLICATES=$(cat /tmp/all_changeids.txt | awk '{print $2}' | sort | uniq -d)
|
||
|
|
|
||
|
|
if [ -z "$DUPLICATES" ]; then
|
||
|
|
echo "✅ 没有发现重复的 Change-Id"
|
||
|
|
else
|
||
|
|
echo "⚠️ 发现重复的 Change-Id:"
|
||
|
|
echo "$DUPLICATES"
|
||
|
|
echo ""
|
||
|
|
echo "这些提交使用了相同的 Change-Id:"
|
||
|
|
for dup in $DUPLICATES; do
|
||
|
|
echo ""
|
||
|
|
echo "Change-Id: $dup"
|
||
|
|
grep " $dup$" /tmp/all_changeids.txt | awk '{print " Commit: " $1}'
|
||
|
|
done
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "步骤 3: 统计信息..."
|
||
|
|
TOTAL=$(git rev-list --count HEAD)
|
||
|
|
WITH_CHANGEID=$(cat /tmp/all_changeids.txt | grep -v "MISSING" | wc -l)
|
||
|
|
MISSING=$(cat /tmp/all_changeids.txt | grep "MISSING" | wc -l)
|
||
|
|
|
||
|
|
echo "总提交数: $TOTAL"
|
||
|
|
echo "有 Change-Id: $WITH_CHANGEID"
|
||
|
|
echo "缺少 Change-Id: $MISSING"
|
||
|
|
|
||
|
|
# 清理临时文件
|
||
|
|
rm -f /tmp/all_changeids.txt
|
||
|
|
|
||
|
|
|