标签:
#!/bin/sh if [ -n $1 ];then repos_name=$1 repos_url=‘svn://domain.com/‘$repos_name repos_dir=‘/root/svn_co_code/‘$repos_name if [ ! -d $repos_dir ];then cd /root/svn_co_code svn co $repos_url fi 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 pwd svn up 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 |more -2 q else echo ‘请输入版本库名称‘ exit fi
trunk:是主干分支。生产环境跑的就是这个分支下的代码。
branches/dev:是开发分支。开发人员的代码主要在这里。
测试人员会不定期的将开发分支的代码,合并到主干分支,用于测试。
假设:
版本库地址是:svn://code.domain.com/api
本地迁出代码目录存放的路径是:/root/svn_co_code/api
可以在命令行下直接执行
sh ./merge.sh api
即可完成自动化合并
#!/bin/sh if [ -n $1 ];then repos_name=$1 repos_url=‘svn://domain.com/‘$repos_name repos_dir=‘/root/svn_co_code/‘$repos_name if [ ! -d $repos_dir ];then cd /root/svn_co_code svn co $repos_url fi 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 pwd svn up 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 |more -2 q else echo ‘请输入版本库名称‘ exit fi
标签:
原文地址:http://my.oschina.net/jiangbianwanghai/blog/515466