码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-11 12:57:57      阅读:130      评论:0      收藏:0      [点我收藏+]

标签:

设计逻辑

  1. 通过命令行可以传值,动态的合并不同版本库中的代码;
  2. 判断是否已经迁出代码到本地,如果没有需要先迁出;
  3. 获取主干和分支的版本号,便于今后的合并;
  4. 如果主干版本号大于等于分支版本号,则无需合并;
  5. 合并后提交主干版本号到主干;
  6. 拉取主干更新日志,查看是否已经合并成功;

代码逻辑

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

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

标签:

原文地址:http://my.oschina.net/jiangbianwanghai/blog/515466

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!