- 为了保证windows本地一直有最新代码,可利用定时机制,定时从svn或git服务器更新代码,注意解决两个问题:定时、更新代码;
- 第一篇文章【开发工具】如何自动更新本地仓库代码(一),中,已经探讨了在Windows系统和Linux系统下的定时机制,本文则主要关注于svn库具体的更新操作
- 欢迎各位关注我的博客:https://qxhgd.blog.csdn.net,转载请注明出处。
svn库的更新
简单粗暴类型,直接update
这部分以windows系统为例来说明。
- 使用svn命令
@echo off @echo 1.svn.exe 安装tortoise的目录 set svn_exe=C:\Program Files\TortoiseSVN\bin\svn.exe set svn_work=D:\PrjCode "%svn_exe%" update "%svn_work%" --username "qxhgd" --password "pwd_for_qxhgd"
- 使用TortoiseProc.exe命令
@echo off @echo 1.svn_home 安装tortoise的目录 @echo 2.svn_work 更新项目文件的目录 set svn_home=C:\Program Files\TortoiseSVN\bin set svn_work=D:\PrjCode "%svn_home%"\TortoiseProc.exe/command:update /path:"%svn_work%" /notempfile /closeonend:1
根据本地代码的新旧情况决定是否更新
这部分以Linux系统为例来说明。
#!/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
- 本文仅考虑了本地代码库存在的情况,实践中还可以根据本地代码库是否存在,来决定执行update抑或是co的动作;
- 虽然分别以Windows为例或Linux为例,实际上稍微改下脚本,就可以互用(除了TortoiseProc.exe部分)。