`
貌似掉线
  • 浏览: 257000 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

改进版的SVN更新脚本

阅读更多
这次改进内容主要是输出是否需要更新时以彩色输出。
因为要更新的代码对应于几个仓库中,所以各个模块的本地工作空间都要有一个更新当前目录代码的脚本,再用一个脚本调用它们来进行代码更新。所以我就写了一个脚本位于工作目录的根目录,再在其他几个模块的目录创建软链接,指向这个脚本。
代码如下:
#!/bin/sh
revision=`svn info |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision is $revision"
URL=`svn info |grep URL: |awk '{print $2}'`
echo "the url is $URL"
svnRevision=`svn info $URL |grep "Last Changed Rev:" |awk '{print $4}'`
echo "the revision in svn is $svnRevision"
if [[ $revision < $svnRevision ]] ; then
    echo -e "\033[0;31;40m need svn up \033[0m"
    svn up
    echo "svn up finish"
    exit 1
else
    echo -e "\033[0;38;40m no need svn up \033[0m"
    exit 0
fi


然后是调用它的脚本,调用上面的脚本对代码目录进行更新,并将执行结果输出到以当前时间命名的日志文件当中。当然,上面输出的如"\033[0;31;40m need svn up \033[0m",用cat查看,还是有颜色的。
脚本代码如下:
#!/bin/bash
ROOT=`pwd`
LOGDIR=$ROOT/logsvn
if [ ! -d "$LOGDIR" ]; then
    mkdir $LOGDIR
fi
FILENAME=$LOGDIR/`date |sed -n 's/\://pg' |awk '{print $2 $3 $4}'`.log
function svnUp()
{
    echo "check $1"
    echo "check $1" >> $FILENAME
    cd $ROOT/$1
    ./svnUpCheck.sh >> $FILENAME
    if [[ $? = 1 ]]; then 
        echo "svn up"
    fi  
    revision=`svn info |grep "Last Changed Rev:" |awk '{print $4}'`
    changedate=`svn info |grep "Last Changed Date:" |awk '{print $4 "\x20" $5}'`
    echo "$revision $changedate" >> $FILENAME
    date >> $FILENAME
    echo >> $FILENAME
}

svnUp android
svnUp linux
svnUp system
svnUp tvserver/common_magellan
svnUp image_file_creator
svnUp tvserver/system

第一个脚本不用做任何改变,放到svn工作空间都能成功执行。
第二个脚本经过简单修改,如下面调用时传入的参数,为svn工作目录,修改之后同样可用于其他项目。
0
2
分享到:
评论

相关推荐

    SVN自动更新脚本(可改时间间隔)

    ②【ws.run "D:\SVN自动更新脚本\svnUpdate.bat",0】,地址更改为svnUpdate.bat存放地址即可 svnUpdate.bat 中【::】后为注释 主要进行以下修改 ①D:\svn为待更新的SVN目录,就是执行update的目录,改成你需要执行...

    SVN自动更新提交脚本.zip(windows版本)

    SVN自动更新、提交脚本可以自由设置提交以及更新时间,带注释方便理解,附带使用教程。。。。。。。。。。。。。。。。。。。。

    删除svn包脚本.reg

    删除svn包脚本.reg

    svn hook脚本,实现commit提交逻辑检查,评论格式,文件格式逻辑设定

    svn上传管理时,经常需要规定固定的评论格式,还有文件格式限制,本示例实现了上述逻辑,需要的同学可以参考

    清理svn信息 脚本

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...

    删除.svn文件脚本

    删除当前文件夹(以及子文件夹)下的.svn文件的脚本

    svn自动编译安装脚本

    svn自动编译安装脚本,脚本分2部分 atuo_svn.sh 是编译安装svn make_svn.sh是自动安装一个指定的库

    SVN自动提交脚本 For Windows

    SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入

    svn版本修正脚本

    svn版本修正脚本,需要安装python

    Windows下SVN备份脚本

    一共四个bat文件 backup.bat和simplebackup.bat用的svnadmin hotcopy命令全备。 post-commit.bat和deltaBackup.bat用的svnadmin dump命令,可以增量备份。 请注意,back.bat 、simplebackup.bat、post-commit.bat这...

    svn清理脚本

    windows系统上清除.svn文件的脚本,亲试可用,666666。

    用于清除SVN脚本文件

    用于清除SVN脚本文件,双击文件,写入注册表以后,鼠标右键点击相应SVN文件夹目录,选择“Delete SVN Folders”,即可删除文件夹内的所有svn脚本信息

    Python处理svn状态脚本

    使用python调用svn命令行,完成对svn工作目录的自动清理,自动完成解决冲突和恢复版本。使用subprocess,适用于windows和mac os。 使用方法:python jtcleansvn.py workingspacepath

    一个很好用的SVN脚本

    一个很好用的SVN脚本,很方便 直接放你文件下就可以锁定SVN文件

    清除SVN脚本

    清除SVN脚本,可以将项目中的SVN脚本去除掉,得到一个全新的项目

    删除.svn脚本

    用于删除项目多余的.svn,用法:放在根目录下,根目录里的所有.svn文件都会删除,包括子目录下的!

    SVN 邮件通知钩子脚本

    SVN 邮件通知钩子脚本,需要配合blat.exe来发送邮件

    SVN数据库增量备份脚本

    SVN增量备份脚本,可以进行远程备份,可以设置只备份指定项目库

    删除文件夹中所有.svn脚本

    删除文件夹中所有.svn脚本,可以双击此文件后在文件夹上右键菜单中会多一项为删除.svn文件选项,delete SVN Folders

    删除.SVN文件脚本工具

    svn版本控制文件极大的改善了团队代码管理,但程序包正式发布到生产时,会遇到清除版本文件的问题,这样就会在服务器端产生多余的文件。采用删除svn版本脚本后,可以轻松生产完整包,直接发布到生产环境。

Global site tag (gtag.js) - Google Analytics