TortoiseSVN 是一個免費的版本控管工具,我以前在專案開發團隊時,我們都是使用這個版控工具在管理我們的專案原始碼,這個工具非常好用,到現在我個人開發的專案,也都會將原始碼上傳到 VisualSVN Server 上做版本控管。
今天有一個需求是要將 Server 上的原始碼做每日自動更新,原本是需要手動執行「SVN Update」的動作才行,現在要改成使用 Bat 批次檔執行。
以下步驟將會教學如何編寫 Bat 指令
Bat 批次檔(英語:Batch file),又稱批次處理文件,副檔名為 .bat。
在DOS、Windows 視窗中可以執行命令指令的語言,命令列採直譯式執行,它類似於類 Unix 系統下的 Shell script。
批次檔適合使用的環境在每日例行性作業或是大量集合式指令,命令列指令支援邏輯運算,例如 if, for, goto, choice 等邏輯指令。可執行 Windows 系統內檔案、目錄異動或是執行外部程式。
在想要存放 Bat 檔案的目錄下建置一個純文字檔,將檔名命名為 SvnAutoUpdate.bat (檔名可自己定義,但附檔名需為 bat)
如果你有安裝 TortoiseSVN 的話,預設的目錄會放在 C:\Program Files\TortoiseSVN 。
而執行 SVN Update 的程式放在 bin\TortoiseProc.exe
如果你也使用預設路徑的話,那批次要執行的檔案就在
C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
使用純文字工具打開 SvnAutoUpdate.bat 後,輸入指令
CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe
此指令可以開啟 SVN Update 的執行程式
但這樣還不夠,接著要傳入參數,讓程式自動更新目錄。
我 SVN 存放的目錄在 C:\Project\Cardata,你們依各自的目錄修改路徑。
接下來把剛剛的 BAT 檔內容指令改為
CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\Project\Cardata\"
執行 BAT 檔後的結果
BAT 可以正確呼叫 SVN Update 程式且更新目錄為最新狀態了。
但出現另一個問題,更新後視窗沒有關閉。
如果視窗沒有關閉,連續執行就會這樣子,一堆的更新結果畫面。
接著只要解決執行更新後,自動關閉視窗即可。
把剛剛的指令再改一下
CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\Project\Cardata\" /closeonend:2
加入參數 /closeonend:2 ,告知 SVN Update 在更新後自動關閉視窗。
這樣子就完成了,執行批次後更新完會自動關閉視窗。
接下來就是打開「工作排程器」,建立一個每日執行的排程來執行此 BAT 檔。
觸發程序可以依照自己想要的時間
動作就是選「啟動程式」然後指向剛剛的 .bat 檔案。
這樣就完成了喔。
如何在 Windows Server 安裝 SVN Server 版本控管軟體