NO IMAGE

很多人都把SVN伺服器搭建在正式伺服器上,commit後,需要在測試伺服器先測試一下,這時候,就需要在測試環境進行update操作。

問題是,commit後,測試環境如何實現自動更新呢?

找版本庫儲存的目錄,新建一個post-commit.bat檔案

我的目錄是在

post-commit.bat檔案內容為

  1. @echo off
  2. “C:\Program Files\VisualSVN Server\bin\svn.exe” update
    “F:\www\auto_test” –username
    “test” –password
    “123456”
  3. 上面的程式碼使用的時候要修改一下,svn.exe的路徑,同步的目錄,svn的使用者和密碼,根據自己的情況修改一下

    測試一下是不是成功了

  4. 下一個問題是怎麼呼叫這個bat檔案呢?如果正式和測試環境,都在同一只機器上,那麼直接編寫HOOK,呼叫這個檔案就可以。

    但如何不是同一個機器呢?一個比較簡單的辦法,就是在測試環境上,每經過一個時間間隔進行更新操作,我們可以編寫一個vbs指令碼,每隔15秒呼叫一次svnUpdate.bat。

    採用vbs呼叫有一個好處,可以隱藏彈出的cmd.exe視窗。

    我們新建一個檔案,callSvnUpdate.vbs,內容如下:

  5. '指定時間間隔呼叫.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
  6. 將兩個檔案放於同一目錄中,執行callSvnUpdate.vbs,一切盡在不言中。