svn代码自动化迁移git仓库

#!/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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值