diff --git a/Update Upm.bat b/Update Upm.bat index 18af797..2244359 100644 --- a/Update Upm.bat +++ b/Update Upm.bat @@ -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 开始提交,请勿关闭该窗口! - - :: Force switch to master first and ensure clean state - echo 切换到master分支并清理工作区... - git checkout -f master - git reset --hard HEAD - git clean -fd - - :: Verify Assets folder exists - if not exist "Assets" ( - echo 错误:Assets文件夹不存在! - goto :END - ) - - :: 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 所有操作已完成! -) +:: Create and push upm branch +git subtree split --prefix Assets --branch upm +git push -f origin upm + +:: Create and push tag +git tag -d %version% 2>nul +git tag %version% upm +git push origin %version% + +:: Return to master +git checkout -f master + +echo. +echo Successfully created UPM branch and tag %version% :END -echo 执行完成! -pause -exit \ No newline at end of file +pause \ No newline at end of file