Files
Commercialization.topon/Update Upm.bat

124 lines
2.9 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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前请确保当前分支所有改动都已经提交
:: Extract 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%
:: Check if tag exists
git tag | findstr "%version%" > nul
if %errorlevel% equ 0 (
echo 错误:版本号 %version% 对应的tag已存在
pause
exit
)
set /p Flg=确认提交的版本号%version%,是否开始提交(y/n) -------- :
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 所有操作已完成!
)
:END
echo 执行完成!
pause
exit