这次改进内容主要是输出是否需要更新时以彩色输出。
因为要更新的代码对应于几个仓库中,所以各个模块的本地工作空间都要有一个更新当前目录代码的脚本,再用一个脚本调用它们来进行代码更新。所以我就写了一个脚本位于工作目录的根目录,再在其他几个模块的目录创建软链接,指向这个脚本。
代码如下:
#!/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工作目录,修改之后同样可用于其他项目。
分享到:
相关推荐
②【ws.run "D:\SVN自动更新脚本\svnUpdate.bat",0】,地址更改为svnUpdate.bat存放地址即可 svnUpdate.bat 中【::】后为注释 主要进行以下修改 ①D:\svn为待更新的SVN目录,就是执行update的目录,改成你需要执行...
SVN自动更新、提交脚本可以自由设置提交以及更新时间,带注释方便理解,附带使用教程。。。。。。。。。。。。。。。。。。。。
删除svn包脚本.reg
svn上传管理时,经常需要规定固定的评论格式,还有文件格式限制,本示例实现了上述逻辑,需要的同学可以参考
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...
删除当前文件夹(以及子文件夹)下的.svn文件的脚本
svn自动编译安装脚本,脚本分2部分 atuo_svn.sh 是编译安装svn make_svn.sh是自动安装一个指定的库
SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入
svn版本修正脚本,需要安装python
一共四个bat文件 backup.bat和simplebackup.bat用的svnadmin hotcopy命令全备。 post-commit.bat和deltaBackup.bat用的svnadmin dump命令,可以增量备份。 请注意,back.bat 、simplebackup.bat、post-commit.bat这...
windows系统上清除.svn文件的脚本,亲试可用,666666。
用于清除SVN脚本文件,双击文件,写入注册表以后,鼠标右键点击相应SVN文件夹目录,选择“Delete SVN Folders”,即可删除文件夹内的所有svn脚本信息
使用python调用svn命令行,完成对svn工作目录的自动清理,自动完成解决冲突和恢复版本。使用subprocess,适用于windows和mac os。 使用方法:python jtcleansvn.py workingspacepath
一个很好用的SVN脚本,很方便 直接放你文件下就可以锁定SVN文件
清除SVN脚本,可以将项目中的SVN脚本去除掉,得到一个全新的项目
用于删除项目多余的.svn,用法:放在根目录下,根目录里的所有.svn文件都会删除,包括子目录下的!
SVN 邮件通知钩子脚本,需要配合blat.exe来发送邮件
SVN增量备份脚本,可以进行远程备份,可以设置只备份指定项目库
删除文件夹中所有.svn脚本,可以双击此文件后在文件夹上右键菜单中会多一项为删除.svn文件选项,delete SVN Folders
svn版本控制文件极大的改善了团队代码管理,但程序包正式发布到生产时,会遇到清除版本文件的问题,这样就会在服务器端产生多余的文件。采用删除svn版本脚本后,可以轻松生产完整包,直接发布到生产环境。