这次改进内容主要是输出是否需要更新时以彩色输出。
因为要更新的代码对应于几个仓库中,所以各个模块的本地工作空间都要有一个更新当前目录代码的脚本,再用一个脚本调用它们来进行代码更新。所以我就写了一个脚本位于工作目录的根目录,再在其他几个模块的目录创建软链接,指向这个脚本。
代码如下:
#!/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工作目录,修改之后同样可用于其他项目。
分享到:
相关推荐
在这个"svn加强版绿色版"中,我们看到的是一个优化且便携的SVN实现,它可能包含了更多实用的功能和优化,同时免去了传统安装过程,方便用户快速部署和使用。 绿色版软件通常指的是无需安装,下载解压后即可运行的...
- SVN 1.5引入了分支和合并的改进,使得分支管理更为便捷。 - SVN 1.6增加了对大文件的支持,优化了性能,以及对元数据的错误处理。 - SVN 1.8和1.9版本进一步提升了性能,增强了冲突解决机制,以及引入了一些新...
3. **分支和合并改进**:1.9.7版对分支和合并操作进行了优化,使得在多个分支之间同步代码更加顺畅,降低了合并错误的可能性。 4. **更强的版本控制**:SVN 1.9增加了对文件属性版本控制的支持,允许跟踪和管理文件...
SVN(Subversion)是一种广泛使用的版本控制系统...不过,值得注意的是,尽管1.7.11是一个稳定的版本,但随着时间的推移,可能有更现代的SVN版本发布,包含更多改进和新功能,因此建议用户定期检查更新以保持系统最新。
此版本号"2.6.12735"可能代表该软件的稳定更新,修复了前一版本中的某些问题,并可能引入了新的特性或性能改进。 "AnkhSvn-2.6.12735.zip"是一个包含AnkhSVN安装程序的压缩文件,通常用于分发和安装AnkhSVN。".zip...
5. **运行安装脚本**:通常离线安装包会包含一个安装脚本,用户需要以管理员权限运行此脚本来进行安装。 6. **配置SVN**:安装完成后,用户需要配置SVN服务器,包括设置仓库目录、创建用户和权限等。 7. **启动和...
总之,"svn官方帮助文档html版"是深入理解和使用SVN的宝贵资源,涵盖了从基础操作到高级特性的全面指南。无论你是初学者还是经验丰富的开发者,都能从中受益。通过仔细阅读和实践,你将能够充分利用SVN来提高你的...
1.6.16是SVN的一个稳定版本,发布于2010年,它提供了多种功能改进和错误修复,旨在提高开发团队的协作效率。在这个版本中,用户可以享受到更加可靠的数据完整性检查以及更高效的分支和合并操作。 源代码是任何软件...
### js脚本删除项目中的.svn文件 在软件开发过程中,版本控制系统如Subversion (SVN) 是必不可少的工具之一。...此外,还可以根据实际需求对该脚本进行扩展和改进,例如增加日志记录功能、支持递归深度限制等。
本文将详细阐述如何通过一个简单的shell脚本实现“CentOS7一键搭建SVN”,帮助你快速、高效地建立SVN服务器。 【描述】:“SVN版本为1.8,这个自动化部署方案利用shell脚本和RPM包,使得安装过程和脚本编写变得极其...
CVS是一种广泛使用的版本控制系统,而SVN作为其后继者,提供了一些改进的功能和更现代的架构。随着项目的发展,很多团队选择从CVS迁移到SVN,以利用后者的优势。 cvs2svn是一个开源工具,专门设计用来帮助用户平滑...
7. `changes.txt`:可能记录了软件的更新历史和改进,帮助用户了解版本之间的差异。 8. `lib`:这是一个目录,通常包含程序运行所需的外部库或依赖项,这些库支持SVN Importer的各种功能。 通过这些文件,我们可以...
本项目为码云git-svn-fast-import工具的改进设计源码,采用C语言进行核心开发,同时包含Shell脚本和Python辅助脚本,总计39个文件,其中C源文件13个,头文件10个,Shell脚本6个。此外,还包含构建配置文件、版本控制...
SVN 1.14.5 版本是该系统的一个特定发行版,提供了多种改进和修复,确保用户能够高效、稳定地进行团队协作和版本管理。 在描述中提到,svn客户端的官方网站似乎遇到了访问问题,这可能是因为服务器维护、网络故障...
SVN 9.0 版本可能是该系统的一个特定更新或增强版本,专注于提供更高效、安全和稳定的服务。在这个"svn9.0专用"的压缩包中,我们可以推测它可能包含了针对 SVN 9.0 的特定插件或配置文件,比如`myplugins`这个文件...
7. **可扩展性**:Subversion通过插件系统和钩子脚本支持各种自定义行为,例如自动化构建、权限控制等。 在Subversion1.8.13这个特定版本中,引入了一些关键更新和优化,包括: 1. **性能提升**:Subversion1.8对...
6. 改进的客户端工具:此版本的SVN改进了命令行工具和图形化客户端,如TortoiseSVN,提供了更直观的界面和更丰富的功能,如预览合并结果、直观的冲突解决界面等。 7. 支持链接库(links):文件链接在SVN1.6中得以...
这个文件通常包含了所有必要的翻译文件和安装脚本,用户下载后可以通过运行该文件来安装或更新TortoiseSVN的中文界面。 关于Subversion(svn)的知识点: 1. Subversion是一个开源的版本控制系统,用于跟踪文件和...
TortoiseSVN 1.13.1版引入了多项改进和修复,提高了稳定性和用户体验。 在描述中提到的"SVN上传工具"实际上是指TortoiseSVN提供了上传代码到SVN服务器的功能,这包括创建新仓库、导入项目、以及将本地修改的文件...