工程(闸机提速批): 02分片并行+代码域起手自检+worktree素材同步——run_all.gd加--shard/--shard-count分片(串行道=RNG日志会话六套件钉第1片防同种子日志互踩;空片放行;逐套件日志_s<k>段防跨片覆写)+gate_unit多进程并行(GATE_SHARDS默认4,=1回落单进程原路径;日志按片序合并供错误扫描与指纹取材——指纹绿闸记green红闸取FAIL行排序集合,不受片序影响)+run_all_gates.sh code域起手自检(熵增预检红灯即止/master推进黄牌/worktree素材自动同步)+tools/sync_worktree_assets.sh(主区→worktree增量拷assets art与.import边车、缺件或缺.godot时编辑器导入刷新;相对路径拷贝防杂散顶层目录)
This commit is contained in:
1 parent
31c801cd5a
commit
1ee65d854b
3 files changed
+188
-7
No files matched your search
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
# worktree 素材同步:主工作区 → 本 worktree 增量拷贝 gitignore 面(game/assets/art/ 终稿与 .import 边车)。
|
||||
# 素材不入 git,worktree 冷检出与主区新收素材之间必然缺件——呈现/样张断言红的环境成因。
|
||||
# 只在 worktree 生效(主工作区直跑=无操作);有新拷件或缺 .godot 时跑一次编辑器导入刷新
|
||||
#(headless --script 模式不触发 import,素材在盘而 .ctex 缺位照样加载失败)。
|
||||
# 用法:tools/sync_worktree_assets.sh(闸机 code 域起手自动调用;可单独手跑)
|
||||
# 纪律:拷贝一律相对路径定位(在源根 cd 后按相对路径落盘)——绝对路径 --parents 会在
|
||||
# 目标仓顶层误产盘符目录树(杂散目录即此误产,熵增闸判红)。
|
||||
set -u
|
||||
REPO="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
GITDIR="$(git -C "$REPO" rev-parse --git-dir 2>/dev/null)"
|
||||
COMMON="$(git -C "$REPO" rev-parse --git-common-dir 2>/dev/null)"
|
||||
if [ -z "$GITDIR" ] || [ -z "$COMMON" ] || [ "$GITDIR" = "$COMMON" ]; then
|
||||
echo "[assets] 主工作区:无同步面"
|
||||
exit 0
|
||||
fi
|
||||
MAIN="$(git -C "$REPO" worktree list --porcelain 2>/dev/null | sed -n 's/^worktree //p' | head -1)"
|
||||
if [ -z "$MAIN" ]; then
|
||||
echo "[assets] 取不到主工作区路径(git worktree list 为空),跳过同步"
|
||||
exit 0
|
||||
fi
|
||||
MAIN="$(cd "$MAIN" && pwd)"
|
||||
[ "$MAIN" = "$REPO" ] && exit 0
|
||||
|
||||
_copied=0
|
||||
if [ -d "$MAIN/game/assets/art" ]; then
|
||||
_new="$(comm -13 <(cd "$REPO/game/assets/art" 2>/dev/null && find . -type f | sort) \
|
||||
<(cd "$MAIN/game/assets/art" && find . -type f | sort) | wc -l)"
|
||||
if [ "$_new" -gt 0 ]; then
|
||||
mkdir -p "$REPO/game/assets/art"
|
||||
cp -ru "$MAIN/game/assets/art/." "$REPO/game/assets/art/"
|
||||
_copied=$((_copied + _new))
|
||||
fi
|
||||
fi
|
||||
_imports="$(comm -13 <(cd "$REPO/game" 2>/dev/null && find . -name '*.import' -type f | sort) \
|
||||
<(cd "$MAIN/game" && find . -name '*.import' -type f | sort) | wc -l)"
|
||||
if [ "$_imports" -gt 0 ]; then
|
||||
(cd "$MAIN/game" && find . -name '*.import' -type f -print0) | while IFS= read -r -d '' f; do
|
||||
if [ ! -f "$REPO/game/$f" ]; then
|
||||
mkdir -p "$REPO/game/$(dirname "$f")"
|
||||
cp "$MAIN/game/$f" "$REPO/game/$f"
|
||||
fi
|
||||
done
|
||||
_copied=$((_copied + _imports))
|
||||
fi
|
||||
if [ "$_copied" -gt 0 ] || [ ! -d "$REPO/game/.godot" ]; then
|
||||
echo "[assets] worktree 素材同步:补拷 $_copied 件(含 .import 边车),刷新导入缓存"
|
||||
"${GODOT_BIN:-/d/code/godot/Godot_v4.7.2-stable_win64_console.exe}" \
|
||||
--headless --editor --quit --path "$REPO/game" >/dev/null 2>&1
|
||||
echo "[assets] 导入刷新完成"
|
||||
else
|
||||
echo "[assets] worktree 素材同步:无缺件"
|
||||
fi
|
||||
exit 0
|
||||
Reference in new issue
Block a user