首页 最新文章网站服务器Shell正文

svn merge命令合包脚本(按版本号)

rem 功能 :自动把分支最新的版本merge到主干
rem 入参 :1服务名;2分支名;3注释内容

@echo off
rem =========进入待merge的本地workspace=========
cd D:workspace235%1
echo Goto local path......
rem =========更新本地workspace=========
SVN update
echo Update local workspace...
rem =========获取分支的更新履历,并写入本地文件=========
svn log -q --stop-on-copy https://kxbdatdbpc:8443/svn/WJ-SVN/03_Resource/%1/branches/%2 > D:svn_merge\%1.log
echo get the branch's history......
type D:svn_merge\%1.log
rem =========定义变量:存储分支版本号=========
set brancheNo=
rem =========判断文件是否存在=========
if not exist D:svn_merge\%1.log (
  echo D:svn_merge\%1.log is not exist
  goto end
)
rem =========读取履历文件,忽略-开头的行后只读第一行,默认以空格分隔,默认取第一列=========
for /f "skip=1 eol=-" %%i in ('type D:svn_merge\%1.log') do (
  set brancheNO=%%i
  echo Merged veision%%i
  goto line
)
rem =========模拟merge确定有没有冲突=========
:line
svn merge HTTPS://kxbdatdbpc:8443/svn/WJ-SVN/03_Resource/%1/branches/%2 -c %brancheNO% D:workspace235%1 --dry-run
rem =========如果有冲突文件按N退出,若没有按Y继续=========
set /p Askme=continue(Y) or exit(N)?
if /i "%Askme%"=="y" goto next
if /i "%Askme%"=="n" goto end
rem =========执行merge=========
:next
rem =========格式化当前时间=========
set CURRENT_DATE_TIME=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%:%time:~3,2%:%time:~6,2% 
echo svn merge https://kxbdatdbpc:8443/svn/WJ-SVN/03_Resource/%1/branches/%2 -c %brancheNO% D:workspace235%1
svn merge https://kxbdatdbpc:8443/svn/WJ-SVN/03_Resource/%1/branches/%2 -c %brancheNO% D:workspace235%1
rem =========写入merge日志文件=========
echo %CURRENT_DATE_TIME%====/%1/branches/%2 -c %brancheNO% D:workspace235%1 >> D:svn_mergeSVN_Merge.log
rem =========提交文件=========
svn commit -m %3
echo %3
echo %CURRENT_DATE_TIME%====%3 >> D:svn_mergeSVN_Merge.log
rem =========处理结束并返回脚本所在目录=========
:end
cd D:svn_merge

image.png

评论

精彩评论
觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2023.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5