From 1e8da5fee2e973d752fad20fe5a5c97fe1e0c961 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=80=BB=E7=AE=A1?= Date: Sat, 29 Aug 2026 23:27:18 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E7=BD=B2(HEL-235B):=20=E8=A1=A5?= =?UTF-8?q?=E4=B8=A5=E5=88=86=E5=8F=89=E4=B8=8E=E9=95=9C=E5=83=8F=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: multica-agent --- DOCKER_DEPLOY.md | 2 +- tools/update_from_main.sh | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/DOCKER_DEPLOY.md b/DOCKER_DEPLOY.md index bc5df13..3e22a97 100644 --- a/DOCKER_DEPLOY.md +++ b/DOCKER_DEPLOY.md @@ -202,7 +202,7 @@ docker compose down `compose.yaml` 的镜像名与 revision 标签同样做了强校验:直接 `docker compose up -d --build` 会因缺少 `XIAOBAI_GIT_REV` / `XIAOBAI_GIT_SHORT` 变量而拒绝执行,避免再出现构建进 `latest` 的模糊版本。需要用 compose 时先 `export` 这两个变量(值以 -`~/xiaobai-git rev-parse HEAD` 为准),或直接用上面的脚本。 +`~/xiaobai-build/xiaobai-git rev-parse HEAD` 为准),或直接用上面的脚本。 ### 智能体高级入口:Git 归档流式构建 diff --git a/tools/update_from_main.sh b/tools/update_from_main.sh index e2d624c..d1a9726 100755 --- a/tools/update_from_main.sh +++ b/tools/update_from_main.sh @@ -33,6 +33,8 @@ $DIRTY" LOCAL_HEAD="$(g rev-parse HEAD)" REMOTE_HEAD="$(g rev-parse origin/main)" if [ "$LOCAL_HEAD" != "$REMOTE_HEAD" ]; then + g merge-base --is-ancestor "$LOCAL_HEAD" "$REMOTE_HEAD" \ + || refuse "本地 main 与 origin/main 历史分叉,停止(未改写工作目录)" TOP_AD="$(g diff --name-status HEAD origin/main | grep -E "^[AD][[:space:]]+[^/]+$" || true)" [ -z "$TOP_AD" ] || refuse "main 相比本地新增/删除了顶层文件,目录顶层归 root,需管理员执行: $TOP_AD" @@ -54,6 +56,8 @@ echo "==> 校验通过:本地 HEAD = origin/main = ${LOCAL_HEAD}(${SHORT}) if [ "$MODE" = "verify-tag" ]; then TAG="${2:?用法: update-from-main.sh verify-tag }" + [ "$TAG" = "main-${SHORT}" ] \ + || refuse "镜像标签必须是当前 main 对应的 main-${SHORT},收到:${TAG}" LABEL="$(docker image inspect "${IMAGE_REPO}:${TAG}" \ --format '{{index .Config.Labels "org.opencontainers.image.revision"}}' 2>/dev/null)" \ || refuse "镜像 ${IMAGE_REPO}:${TAG} 不存在"