很多人都把SVN服務器搭建在正式服務器上,commit后,需要在測試服務器先測試一下,這時候,就需要在測試環境進行update操作。
問題是,commit后,測試環境如何實現自動更新呢?
找版本庫保存的目錄,新建一個post-commit.bat文件
我的目錄是在
post-commit.bat文件內容為
- @echo off
- "C:\Program Files\VisualSVN Server\bin\svn.exe" update "F:\www\auto_test" --username "test" --password "123456"
-
上面的代碼使用的時候要修改一下,svn.exe的路徑,同步的目錄,svn的用戶和密碼,根據自己的情況修改一下
測試一下是不是成功了
-
下一個問題是怎么調用這個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,一切盡在不言中。