实现自动更新

2017.7.31 svn

很多人都把SVN服务器搭建在正式服务器上,commit后,需要在测试服务器先测试一下,这时候,就需要在测试环境进行update操作。

问题是,commit后,测试环境如何实现自动更新呢?

研究了一天,终于有了结果,对bat和vbs一窍不通,就是有点麻烦。

OK,我们先写一个批处理文件svnUpdate.bat来进行svn update操作:

cd /d D:/wwwroot
svn update

文件很简单,就两条命令。

WORKING_COPY是你测试环境的网站目录,这里是D:/wwwroot,请自行修改,当然你必须在该目录下checkout先。

如果用户名或密码更改了,你应该手动进行一次验证,并保存验证结果。

svn update命令自行查看资料 =。 =

下一个问题是怎么调用这个bat文件呢?如果正式和测试环境,都在同一只机器上,那么直接编写HOOK,调用这个文件就可以。

但如何不是同一个机器呢?一个比较简单的办法,就是在测试环境上,每经过一个时间间隔进行更新操作,我们可以编写一个vbs脚本,每隔15秒调用一次svnUpdate.bat。

采用vbs调用有一个好处,可以隐藏弹出的cmd.exe窗口。

我们新建一个文件,callSvnUpdate.vbs,内容如下:

'指定时间间隔调用.bat文件
'停止脚本请在任务管理器结束wscript.exe
Set ws=wscript.createobject("wscript.shell")
dim bat
'需运行的文件
bat="cmd.exe /c svnUpdate.bat"
do
'0表示不显示窗口,1显示,调试用
ws.run bat,0
'每15秒运行一次
wscript.sleep 15000
loop

更新列表:

*

参考文章:

相关阅读