简化Upm.bat脚本,移除冗余的错误处理和确认步骤,优化分支创建和标签推送流程,确保成功创建UPM分支和标签。

This commit is contained in:
2025-03-13 18:21:32 +08:00
parent bec23beb33
commit a10af2148b

View File

@@ -1,124 +1,44 @@
@echo off
:: Set UTF-8 encoding
chcp 65001
:: Set window title
title UPM Package Update Tool
:: Set console color
color a
echo 开始提交到git upm....
echo 提交upm前请确保当前分支所有改动都已经提交
echo Starting UPM package update...
echo Please make sure all changes are committed!
:: Extract version from package.json
:: Get version from package.json
for /f "tokens=2 delims=:, " %%i in ('findstr "version" Assets\package.json') do (
set version=%%i
)
:: Remove quotes
set version=%version:"=%
echo 从package.json中读取的版本号为%version%
echo.
echo Current version: %version%
echo.
set /p confirm=Confirm to create UPM branch and tag %version% (y/n):
:: Check if tag exists
git tag | findstr "%version%" > nul
if %errorlevel% equ 0 (
echo 错误:版本号 %version% 对应的tag已存在
pause
exit
if /i not "%confirm%"=="y" (
echo Operation cancelled.
goto :END
)
set /p Flg=确认提交的版本号%version%,是否开始提交(y/n) -------- :
:: Clean and prepare
git checkout -f master
git branch -D upm 2>nul
IF "%Flg%" equ "y" (
echo 开始提交,请勿关闭该窗口!
:: Create and push upm branch
git subtree split --prefix Assets --branch upm
git push -f origin upm
:: Force switch to master first and ensure clean state
echo 切换到master分支并清理工作区...
git checkout -f master
git reset --hard HEAD
git clean -fd
:: Create and push tag
git tag -d %version% 2>nul
git tag %version% upm
git push origin %version%
:: Verify Assets folder exists
if not exist "Assets" (
echo 错误Assets文件夹不存在
goto :END
)
:: Return to master
git checkout -f master
:: Delete local upm branch if exists
echo 清理本地upm分支...
git branch -D upm 2>nul
:: Create new upm branch from current Assets folder with verbose output
echo 正在创建upm分支...
git subtree split --prefix Assets --branch upm --verbose
if %errorlevel% neq 0 (
echo 错误创建upm分支失败
echo 正在尝试修复...
:: Try to fix common issues
git gc
git prune
:: Second attempt
echo 第二次尝试创建upm分支...
git subtree split --prefix Assets --branch upm --verbose
if %errorlevel% neq 0 (
echo 错误创建upm分支失败请确保
echo 1. Assets文件夹存在且不为空
echo 2. 当前分支没有未提交的更改
echo 3. Git仓库状态正常
goto :END
)
)
:: Force update local upm branch with remote changes
echo 更新远程upm分支...
git fetch origin upm
git checkout -f upm
git reset --hard origin/upm
:: Create new subtree split
git checkout -f master
git subtree split --prefix Assets --branch upm-temp
:: Apply new changes and force push
git checkout -f upm
git merge upm-temp --allow-unrelated-histories -X theirs
git branch -D upm-temp
:: Create and push tag with explicit steps
echo 创建并推送tag %version%...
git tag -d %version% 2>nul
git tag %version% upm
if %errorlevel% neq 0 (
echo 错误创建tag失败
git checkout -f master
goto :END
)
:: Push changes and tags separately
echo 推送upm分支...
git push -f origin upm
if %errorlevel% neq 0 (
echo 错误推送upm分支失败
git checkout -f master
goto :END
)
echo 推送tag...
git push origin %version%
if %errorlevel% neq 0 (
echo 错误推送tag失败
git tag -d %version%
git checkout -f master
goto :END
)
:: Return to master branch
git checkout -f master
echo 所有操作已完成!
)
echo.
echo Successfully created UPM branch and tag %version%
:END
echo 执行完成!
pause
exit