SVN实现自动更新(Windows平台)

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

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

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

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

 

::SVN自动update

::待更新SVN目录
SET WORKING_COPY=D:/wwwroot
svn update %WORKING_COPY%

::pause

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

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

 

将两个文件放于同一目录中,运行callSvnUpdate.vbs,一切尽在不言中。

 

posted @ 2012-12-01 17:02  老益  阅读(13848)  评论(0编辑  收藏  举报