由于公司项目代码较大(某一模块甚至10G+),每次都直接敲svn up的话,耗费的时间会比较长,特别是现在是收尾阶段,改动越来越少,所以需要先判断是否需要更新,如果需要再进行更新。
通过svn info可以获取版本库或当前工作空间的版本信息,但是每次都需要使用几个命令来决定,所以决定写一个脚本完成这些事情(shell知识掌握得太少,只好各种百度)。
脚本代码如下:
#!/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 "need svn up"
svn up
echo "svn up finish"
else
echo "no need svn up"
fi
原理很简单,通过svn info 获取当前工作空间svn信息,包括对应的svn服务器url,本地的svn版本号,然后通过svn info url查询服务器上的svn 版本号,对这两个版本号进行判断,来决定是否更新。
分享到:
相关推荐
删除svn包脚本.reg
Linux离线安装svn, 含详细的配置文档和所需的所有相关依赖包,亲测可用。支持svn checkout https://这种格式的(ssl加密协议)
Linux安装SVN的全量包,下载之后依次解压安装,可以在Linux环境下搭建SVN客户端
SVN增量备份脚本,pl文件 ,在linux下 直接vi 后拷入内容,chmod +x 后写入crontab 定期执行
使用python调用svn命令行,完成对svn工作目录的自动清理,自动完成解决冲突和恢复版本。使用subprocess,适用于windows和mac os。 使用方法:python jtcleansvn.py workingspacepath
linux命令关闭开启SVN相关命令
svn自动编译安装脚本,脚本分2部分 atuo_svn.sh 是编译安装svn make_svn.sh是自动安装一个指定的库
删除当前文件夹(以及子文件夹)下的.svn文件的脚本
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...
SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入
linux centos操作系统下的SVN服务器安装和配置详细介绍
svn上传管理时,经常需要规定固定的评论格式,还有文件格式限制,本示例实现了上述逻辑,需要的同学可以参考
用于清除SVN脚本文件,双击文件,写入注册表以后,鼠标右键点击相应SVN文件夹目录,选择“Delete SVN Folders”,即可删除文件夹内的所有svn脚本信息
windows系统上清除.svn文件的脚本,亲试可用,666666。
一共四个bat文件 backup.bat和simplebackup.bat用的svnadmin hotcopy命令全备。 post-commit.bat和deltaBackup.bat用的svnadmin dump命令,可以增量备份。 请注意,back.bat 、simplebackup.bat、post-commit.bat这...
linux 下svn 自动备份脚本
一个很好用的SVN脚本,很方便 直接放你文件下就可以锁定SVN文件
eSVN,http://sourceforge.net/projects/esvn,只需要预装Qt,版本是Qt3以上就行,esvn-0.6.12-1.tar.gz很小1.8M,解压后按照说明make,make install就行
SUSE11G linuxSVN详细配置
SVN(linux中安装配置SVN1.9.9所需的软件包)按照压缩包中的说明安装即可