修复git管理脚本

This commit is contained in:
2026-07-01 04:54:11 +08:00
parent 2aed435668
commit 50a06f028c
2 changed files with 22 additions and 8 deletions

View File

@@ -81,13 +81,14 @@ winboll
winboll.properties-demo winboll.properties-demo
) )
# ====================== 5. 获取当前目录真实文件列表 ====================== # ====================== 5. 获取当前目录真实文件列表(兼容过滤 . .. ======================
REAL_ITEMS=() REAL_ITEMS=()
# 使用固定排序ls自动过滤 . 和 ..,不会进入比对数组
while IFS= read -r line; do while IFS= read -r line; do
if [[ "$line" != "." && "$line" != ".." ]]; then if [[ "$line" != "." && "$line" != ".." ]]; then
REAL_ITEMS+=("$line") REAL_ITEMS+=("$line")
fi fi
done < <(ls -a) done < <(LC_COLLATE=C ls -a1 --color=none)
# ====================== 6. 差异比对函数 ====================== # ====================== 6. 差异比对函数 ======================
check_diff() { check_diff() {
@@ -165,7 +166,7 @@ echo -e "#@@@ 开始合并应用型模块源码 @@@#
for item in "${MERGE_APP_PROJECT_LIST[@]}"; do for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
echo "正在合并 $item 项目 ..." echo "正在合并 $item 项目 ..."
item_lower=$(echo "$item" | tr 'A-Z' 'a-z') item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
git checkout origin/$item_lower $item_lower git checkout origin/$item_lower $item_lower
git add . git add .
git commit -m "合并 $item 项目" git commit -m "合并 $item 项目"
done done
@@ -181,7 +182,7 @@ echo -e "#@@@ 开始合并类库型模块源码 @@@#
for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
echo "正在合并 $item 项目 ..." echo "正在合并 $item 项目 ..."
item_lower=$(echo "$item" | tr 'A-Z' 'a-z') item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
git checkout origin/$item_lower $item_lower lib$item_lower git checkout origin/$item_lower $item_lower lib$item_lower
git add . git add .
git commit -m "合并 $item 项目" git commit -m "合并 $item 项目"
done done

View File

@@ -38,7 +38,7 @@ if [ "${NOW_BRANCH}" != "${TARGET_BRANCH}" ];then
exit 1 exit 1
fi fi
# 目录结构校验 # 目录结构校验白名单(不含 . ..
MERGE_OBJECTS_LIST=( MERGE_OBJECTS_LIST=(
.git .git
.gitignore .gitignore
@@ -65,7 +65,6 @@ libaes
libappbase libappbase
libdebugtemp libdebugtemp
libgpsrelaysentinel libgpsrelaysentinel
libwinboll
local.properties-demo local.properties-demo
mymessagemanager mymessagemanager
positions positions
@@ -76,9 +75,13 @@ winboll.properties-demo
) )
REAL_ITEMS=() REAL_ITEMS=()
# 标准排序ls输出循环强制过滤 . 和 ..
while IFS= read -r line; do while IFS= read -r line; do
[[ $line != "." && $line != ".." ]] && REAL_ITEMS+=("$line") # 跳过虚拟目录 . 和 ..
done < <(ls -a) if [[ "$line" != "." && "$line" != ".." ]]; then
REAL_ITEMS+=("$line")
fi
done < <(LC_COLLATE=C ls -a1 --color=none)
check_diff(){ check_diff(){
local miss=() extra=() local miss=() extra=()
@@ -89,7 +92,17 @@ check_diff(){
[[ ! " ${MERGE_OBJECTS_LIST[@]} " =~ " ${i} " ]] && extra+=("$i") [[ ! " ${MERGE_OBJECTS_LIST[@]} " =~ " ${i} " ]] && extra+=("$i")
done done
if [[ ${#miss[@]} -gt 0 || ${#extra[@]} -gt 0 ]];then if [[ ${#miss[@]} -gt 0 || ${#extra[@]} -gt 0 ]];then
echo "========================================"
echo "本地目录结构不一致,终止运行" echo "本地目录结构不一致,终止运行"
if [[ ${#miss[@]} -gt 0 ]]; then
echo -e "\n缺失条目"
for m in "${miss[@]}"; do echo " $m"; done
fi
if [[ ${#extra[@]} -gt 0 ]]; then
echo -e "\n多余条目"
for e in "${extra[@]}"; do echo " $e"; done
fi
echo "========================================"
exit 1 exit 1
fi fi
} }