1.svn生成tag批处理脚本(window版)
::SVN打标签Window批处理脚本
@echo off
::项目名(根据实际项目修改)
set project=demo
::项目所在的trunk或branches目录(根据实际项目修改)
set project_path=https://john1-john:444/svn/project002/trunk
::tag目录(根据实际项目修改)
set tag_path=https://john1-john:444/svn/project002/tags
::Revision :同一个版本库中最新的revision号码只要使用相同的版本库号码就会增加,一个svn可以有多个版本库。
::获取Revision版本号
::for /f "delims=" %%i in ('svn info -r HEAD %project_path%/%project% ^| findstr "Revision"') do set rev=%%i
::set version=%rev:~10%
::Last Changed Rev: 指定path最后一次更改的revision号
::获取Last Changed Rev版本号
for /f "delims=" %%i in ('svn info -r HEAD %project_path%/%project% ^| findstr "Last\ Changed\ Rev:"') do set rev=%%i
set version=%rev:~18%
::在tag目录创建文件夹“项目名_版本号"
svn mkdir %tag_path%/%project%_%version% -m "mkdir tags %project%_%version%"
if %errorlevel% NEQ 0 (
echo mkdir tags %project%_%version% failed
) else (
echo mkdir tags %project%_%version% succeed
::将项目复制到文件夹“项目名_版本号"
svn cp %project_path%/%project% %tag_path%/%project%_%version% -m "somedir tags %version%"
if %errorlevel% NEQ 0 (
echo tag project failed
) else (
echo tag project succeed
)
)
2.svn生成tag批处理脚本(Linux版)
注意:文件的编码格式需要改成unix/linux格式,否则执行出错,见https://blog.csdn.net/zltAlma/article/details/106427098。
#SVN打标签Linux批处理脚本
#项目名(根据实际项目修改)
project="demo"
#项目所在的trunk或branches目录(根据实际项目修改)
project_path="svn://192.168.58.141/home/svn/branches"
#tag目录(根据实际项目修改)
tag_path="svn://192.168.58.141/home/svn/tags"
#Last Changed Rev: 指定path最后一次更改的revision号
#获取Last Changed Rev版本号
svnRev=`svn info "$project_path/$project" | grep "Last Changed Rev:" | grep "[0-9]*"`
version=`echo $svnRev|grep -o '[0-9]\+'`
#在tag目录创建文件夹“项目名_版本号"
svn mkdir ${tag_path}/${project}_${version} -m "mkdir tags ${project}_${version}"
if [ $? -ne 0 ]; then
echo "mkdir tags ${project}_${version} failed"
else
echo -n "mkdir tags ${project}_${version} succeed"
#将项目复制到文件夹“项目名_版本号"
svn cp ${project_path}/${project} ${tag_path}/${project}_${version}/${project} -m "somedir tags $version"
if [ $? -ne 0 ]; then
echo "tag project failed"
else
echo "tag project succeed"
fi
fi