svn往分支提代码_代码分享——svn分支合并(开发分支合并到主干上)

执行的结果

设计逻辑

通过命令行可以传值,动态的合并不同版本库中的代码;

判断组合出来的svn地址是否可用;

判断是否已经迁出代码到本地,如果没有需要先迁出;

获取主干和分支的版本号,便于今后的合并;

如果主干版本号大于等于分支版本号,则无需合并;

合并后提交主干版本号到主干;

拉取主干更新日志,查看是否已经合并成功;

代码逻辑

#!/bin/sh

if [ ! $1 ];then

echo '请输入版本库名称'

exit

else

repos_name=$1

repos_url='svn://domain.com/'$repos_name

repos_dir='/root/svn_co_code/'$repos_name

ver_no=$(svn info ${repos_url} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

if [ ! $ver_no ];then

echo '版本库不存在'

exit

fi

if [ ! -d $repos_dir ];then

cd /root/svn_co_code

svn co $repos_url

fi

cd $repos_dir

pwd

svn up

trunk=$repos_url'/trunk'

dev=$repos_url'/branches/dev'

trunk_ver=$(svn info ${trunk} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

dev_ver=$(svn info ${dev} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

echo '主干分支版本号(trunk):'$trunk_ver

echo '开发分支版本号(branches/dev):'$dev_ver

if [ $trunk_ver -ge $dev_ver ];then

echo '无需合并'

exit

fi

cd $repos_dir'/trunk'

svn merge -r $trunk_ver:$dev_ver $dev

svn ci -m "merge br dev@${dev_ver} to trunk"

pwd

svn log -v -l1

fi

样例

trunk:是主干分支。生产环境跑的就是这个分支下的代码。

branches/dev:是开发分支。开发人员的代码主要在这里。

测试人员会不定期的将开发分支的代码,合并到主干分支,用于测试。

假设:

版本库地址是:svn://code.domain.com/api

本地迁出代码目录存放的路径是:/root/svn_co_code/api

可以在命令行下直接执行

sh ./merge.sh api

即可完成自动化合并

#!/bin/sh

if [ ! $1 ];then

echo '请输入版本库名称'

exit

else

repos_name=$1

repos_url='svn://code.domain.com/'$repos_name

repos_dir='/root/svn_co_code/'$repos_name

ver_no=$(svn info ${repos_url} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

if [ ! $ver_no ];then

echo '版本库不存在'

exit

fi

if [ ! -d $repos_dir ];then

cd /root/svn_co_code

svn co $repos_url

fi

cd $repos_dir

pwd

svn up

trunk=$repos_url'/trunk'

dev=$repos_url'/branches/dev'

trunk_ver=$(svn info ${trunk} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

dev_ver=$(svn info ${dev} -rHEAD | grep "最后修改的版本:" | cut -d' ' -f2)

echo '主干分支版本号(trunk):'$trunk_ver

echo '开发分支版本号(branches/dev):'$dev_ver

if [ $trunk_ver -ge $dev_ver ];then

echo '无需合并'

exit

fi

cd $repos_dir'/trunk'

svn merge -r $trunk_ver:$dev_ver $dev

svn ci -m "merge br dev@${dev_ver} to trunk"

pwd

svn log -v -l1

fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值