Files
gerrit/检查并修复Change-Id.sh
2025-12-22 17:12:39 +08:00

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