由于公司项目代码较大(某一模块甚至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 版本号,对这两个版本号进行判断,来决定是否更新。
分享到:
相关推荐
### Linux环境下配置同步更新的SVN服务器 #### 一、概述 版本控制系统是软件开发过程中不可或缺的一部分,它帮助团队管理代码的变化历史,并提供了一个协作的平台。Subversion(SVN)作为一款开源的集中式版本控制...
Linux下的Subversion(SVN)是一个强大的版本控制系统,用于跟踪文件和目录的变更。...在Linux环境中,结合shell脚本,可以自动化许多SVN操作,提高工作效率。记住,良好的版本控制习惯对于团队协作至关重要。
总结起来,当Linux内核编译与Subversion版本发生冲突时,我们需要定位到引起冲突的具体代码,然后适当地修改或禁用这些代码,以确保编译过程不受影响。对于其他可能遇到的编译问题,理解编译过程、熟悉Makefile语法...
5. **钩子脚本**:SVN仓库支持钩子脚本,可以在特定事件(如提交)发生时自动执行脚本,实现自动化任务,如发送通知邮件或自动构建。 总之,SVN是软件开发团队不可或缺的工具,通过它,团队成员可以高效协作,同时...
3. **手动删除**:可以通过Windows资源管理器的搜索功能找到并删除这些目录,或者在命令行(如Git Bash、PowerShell)中使用递归删除命令,例如`rm -rf .svn/*`(在Unix/Linux系统)或`rmdir /s /q .svn`(在Windows...
svn cleanup svn import 摘要 4. 分支与合并 什么是分支? 使用分支 创建分支 在分支上工作 分支背后的关键概念 在分支间拷贝修改 拷贝特定的修改 合并背后的关键概念 合并的最佳实践 手工追踪合并 预览合并 合并...
- 定期清理工作副本:`svn cleanup`可清除临时文件和解除锁定。 - 定期备份版本库:防止数据丢失。 7. SVN与其他工具集成 SVN可以与各种IDE(如Eclipse、IntelliJ IDEA)和代码编辑器集成,提供内置的SVN操作。此外...
同样,如果要在命令提示符(Windows的cmd或Linux/Mac的Terminal)中直接运行SVN命令,也需要安装这个客户端。 Apache-Subversion-1.9.7是这个压缩包的文件名,它很可能包含了SVN 1.9.7版本的源码或二进制文件。用户...
3. **使用命令行工具**:对于SVN,可以使用 `svn cleanup --remove-locks` 或 `rm -rf .svn` (在Unix/Linux系统中)来删除整个目录及其版本信息。对于CVS,`cvsdiff -r cvsroot` 或 `rm -rf .cvspserver` 可以达到...
在日常使用中,Subversion提供了丰富的命令行工具,如`svn co`用于检出代码,`svn ci`用于提交更改,`svn up`用于更新本地代码等。通过与版本库的交互,开发人员可以有效地协同工作,避免冲突,追溯历史变更,以及...
SVN 是一个版本控制系统,用于管理软件项目的源代码,而 `svn cleanup` 是 SVN 提供的一个命令,用于清理工作副本,解除锁、清除临时文件等。当 `svn cleanup` 命令无法正常工作时,可能是由于某些文件被占用或损坏...
在IT行业中,shell脚本是Linux或Unix系统中不可或缺的一部分,它允许用户通过命令行界面自动化执行一系列操作。本文将深入探讨如何使shell脚本模块化和复用,以提高效率和可维护性。首先,我们需要理解模块化的概念...
然而,随着数据量的增长,VLOOKUP可能会遇到效率问题,尤其是在需要进行复杂对比或者处理大型数据集时。因此,"代替Vlookup的数据核对软件"成为了解决这一问题的有效方案。本文将介绍一种名为Beyond Compare的专业...
`svn clean up` 是用于解决工作副本中的各种问题,如清理丢失的锁定、修复损坏的符号链接等,这些操作都需要与SQLite3数据库交互,确保数据的一致性和完整性。 对于“亲测有效”,这意味着这个SQLite3版本已经在...
`expect`是一个Unix/Linux下的工具,用于自动化那些需要用户输入交互的程序,比如SSH登录、SCP文件传输、SVN更新等。在Shell脚本中结合使用`expect`,可以编写出更加智能和自动化的脚本,减少手动操作的繁琐。 首先...
对于其他相关的话题,如VSCode远程调试Linux程序、配置多个SVN仓库、实现SSH免密登录、在Linux上配置JDK和Tomcat、Zabbix Agent的安装配置、VSCode在Windows下通过WSL进行C++开发的自动提示配置,以及Linux环境变量...
9. **自动化备份**:为了确保不忘记备份,可以使用cron job(Linux)或Task Scheduler(Windows)设置自动备份脚本。 10. **版本库优化**:在备份之前,可能需要运行`svnadmin fs-cleanup`或`fs-replica`等命令优化...
Setting up repositories Reading repository metadata in from local files Installed Packages 4Suite.i386 1.0-8.b1 installed Canna.i386 3.7p3-13 installed Canna-devel.i386 3.7p3-13 installed ``` 2...