demoapp、winboll、aes 没有 xxx-版本号 格式标签,跳过属于正常
2. appbase 成功抓到标签和commit,只是命令语法错导致拉取失败,改完即可正常合并
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
get_module_latest_tag() {
|
||||
local module_name="$1"
|
||||
git fetch origin --tags 2>/dev/null
|
||||
# 筛选 模块名- 开头标签,按版本排序取最新
|
||||
git ls-remote --tags origin "${module_name}-*" 2>/dev/null \
|
||||
| grep -v '\^{}' \
|
||||
| sort -V \
|
||||
@@ -45,7 +44,7 @@ if [ "$CUR_BRANCH" != "$TARGET_BRANCH" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# ====================== 目录结构校验(保留原有) ======================
|
||||
# ====================== 目录结构校验 ======================
|
||||
MERGE_OBJECTS_LIST=(
|
||||
.git
|
||||
.gitignore
|
||||
@@ -131,13 +130,11 @@ MERGE_APP_PROJECT_LIST=(DemoAPP)
|
||||
echo -e "---------- 应用型模块合并 ----------"
|
||||
for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
|
||||
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
||||
# 1.获取远程最新TAG
|
||||
LATEST_TAG=$(get_module_latest_tag "$item_lower")
|
||||
if [ -z "$LATEST_TAG" ]; then
|
||||
echo "跳过 $item_lower :未查询到任何版本标签"
|
||||
continue
|
||||
fi
|
||||
# 2.通过TAG获取对应提交点Commit
|
||||
TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG")
|
||||
if [ -z "$TARGET_COMMIT" ]; then
|
||||
echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点"
|
||||
@@ -149,8 +146,8 @@ for item in "${MERGE_APP_PROJECT_LIST[@]}"; do
|
||||
echo "对应提交点:$TARGET_COMMIT"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# 3.使用Commit从远程模块分支拉取目录合并到本地
|
||||
git checkout origin/${item_lower} ${TARGET_COMMIT}:${item_lower}
|
||||
# 正确写法:用commit检出指定目录
|
||||
git checkout ${TARGET_COMMIT} -- ${item_lower}
|
||||
git add ${item_lower}
|
||||
git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}"
|
||||
done
|
||||
@@ -160,13 +157,11 @@ MERGE_LIB_PROJECT_LIST=(WinBoLL APPBase AES)
|
||||
echo -e "---------- 类库模块合并 ----------"
|
||||
for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
|
||||
item_lower=$(echo "$item" | tr 'A-Z' 'a-z')
|
||||
# 1.获取远程最新TAG
|
||||
LATEST_TAG=$(get_module_latest_tag "$item_lower")
|
||||
if [ -z "$LATEST_TAG" ]; then
|
||||
echo "跳过 $item_lower :未查询到任何版本标签"
|
||||
continue
|
||||
fi
|
||||
# 2.通过TAG获取对应提交点Commit
|
||||
TARGET_COMMIT=$(get_commit_by_tag "$LATEST_TAG")
|
||||
if [ -z "$TARGET_COMMIT" ]; then
|
||||
echo "跳过 $item_lower :标签 $LATEST_TAG 未查询到对应提交点"
|
||||
@@ -178,8 +173,8 @@ for item in "${MERGE_LIB_PROJECT_LIST[@]}"; do
|
||||
echo "对应提交点:$TARGET_COMMIT"
|
||||
echo "----------------------------------------"
|
||||
|
||||
# 3.拉取主目录 + lib目录
|
||||
git checkout origin/${item_lower} ${TARGET_COMMIT}:${item_lower} ${TARGET_COMMIT}:lib${item_lower}
|
||||
# 同时检出主目录 + lib目录
|
||||
git checkout ${TARGET_COMMIT} -- ${item_lower} lib${item_lower}
|
||||
git add ${item_lower} lib${item_lower}
|
||||
git commit -m "合并模块${item} 来源最新标签:${LATEST_TAG} 提交点:${TARGET_COMMIT}"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user