svn代码自动化迁移git仓库
发布时间:2024年01月04日
#!/bin/bash
#gitlab仓库地址
gitlab_project_url="http://XXXX/cna/devops/yanlian-test-svn.git"
#git仓库名称
git_project_name=`echo $gitlab_project_url |awk -F "/" '{print $NF}' |cut -d '.' -f1`
echo "开始克隆git仓库到本地..."
git clone $gitlab_project_url
#将远程的svn仓库下载到本地,循环如果是开发环境代码,则匹配1,将代码mv到项目的开发分支上
while :
do
read -p "请输入分支简称(dev/test/pre/prod),输入(quit)结束迁移代码:" a
case $a in
#1代表开发分支
dev)
#请输入开发分支仓库地址
read -p "请输入开发分支代码:" svn_repo_dev
#svn目录名称
svn_repo_name=`echo $svn_repo_dev |awk -F "/" '{print $NF}'`
#下载svn开发分支代码
echo "开始下载svn代码.."
svn checkout $svn_repo_dev
cd $git_project_name
git checkout master
git branch dev
git checkout dev
#将开发分支代码mv到git仓库的开发分支中
mv ../$svn_repo_name/* .
#推送代码到远程gitlab仓库
git add .
git commit -m "svn-git-dev"
echo "开始推送到远程gitlab仓库"
git push origin dev
#退回到原目录
cd ..
rm -rf $svn_repo_name
;;
test)
#请输入开发test仓库地址
read -p "请输入测试分支代码:" svn_repo_test
#请输入svn目录名称
svn_repo_name=`echo $svn_repo_test |awk -F "/" '{print $NF}'`
#下载svn测试分支代码
echo "开始下载svn代码.."
svn checkout $svn_repo_test
cd $git_project_name
git checkout master
git branch test
git checkout test
#将测试分支代码mv到git仓库的测试分支中
mv ../$svn_repo_name/* .
#推送代码到远程gitlab仓库
git add .
git commit -m "svn-git-test"
echo "开始推送到远程gitlab仓库"
git push origin test
#退回到原目录
cd ..
rm -rf $svn_repo_name
;;
pre)
#请输入预发布pre仓库地址
read -p "请输入预发布分支代码:" svn_repo_pre
#请输入svn目录名称
svn_repo_name=`echo $svn_repo_pre |awk -F "/" '{print $NF}'`
#下载svn预发布分支代码
echo "开始下载svn代码.."
svn checkout $svn_repo_pre
cd $git_project_name
git checkout master
git branch pre
git checkout pre
#将预发布分支代码mv到git仓库的预发布分支中
mv ../$svn_repo_name/* .
#推送代码到远程gitlab仓库
git add .
git commit -m "svn-git-pre"
echo "开始推送到远程gitlab仓库"
git push origin pre
#退回到原目录
cd ..
rm -rf $svn_repo_name
;;
prod)
#请输入生产prod仓库地址
read -p "请输入生产分支代码:" svn_repo_prod
#请输入svn目录名称
svn_repo_name=`echo $svn_repo_prod |awk -F "/" '{print $NF}'`
#下载svn生产分支代码
echo "开始下载svn代码.."
svn checkout $svn_repo_prod
cd $git_project_name
git checkout master
git branch prod
git checkout prod
#将预发布分支代码mv到git仓库的测试分支中
mv ../$svn_repo_name/* .
#推送代码到远程gitlab仓库
git add .
git commit -m "svn-git-prod"
echo "开始推送到远程gitlab仓库"
git push origin prod
#退回到原目录
cd ..
rm -rf $svn_repo_name
;;
quit)
break
;;
*)
echo "输入有误,请重新输入"
continue
;;
esac
done
文章来源:https://blog.csdn.net/h2728677716/article/details/135389496
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:chenni525@qq.com进行投诉反馈,一经查实,立即删除!