tags:svn,hooks,svn鉤子,tortoisesvn鉤子
說句實話,對於伺服器svn鉤子,windows平台下選擇vbs並不是最佳解決方案,但是我對vbs的熟悉程度遠大於其他指令碼語言,如python,perl等,所以選擇並不多:要麼是vbs,要麼是bat,bat實現鉤子的例子網上有很多,但是對於vbs實現的,卻很少,決定使用vbs試試看。
對於vbs有幾個問題,需要特別注意:
1.對於svn 鉤子而言,最好的鉤子程式是.bat、.exe、.cmd這樣的可執行程式。
2.windows平台上,由於vbs本身就是解釋性語言,由於windows版本和vbs版本問題,存在一些呼叫問題,比如windows xp和vista呼叫就可能存在不一致的問題。我辦公使用的是xp,其直譯器的路徑為:c:/windows/system32/cscript.exe.
但事情都是辯證的,vbs存在很多問題,但是他簡單方便,而且基本上windows標配有其直譯器,不需要其他的編譯器和直譯器。但是它只能在windows平台上執行,執行平台比較單一。
python和perl流行,但是需要附加的編譯器等以及另外的學習成本,但是其具有跨平台的特性。
3.對於vbs,無法在hooks目錄中直接同名呼叫,而需要借助同名的.bat進行呼叫。
舉例:
如果pre-lock hook,需要在hooks目錄中建立pre-lock.bat檔案,其內容類似於:
cscript.exe d:/pre-lock.vbs %1 %2 %3 %4 %5
其中:
cscript.exe 為直譯器名稱,最好是全路徑,不行的話,也可以增加其路徑到環境變數中;
d:/pre-lock.vbs 為vbs指令碼檔案所在路徑
%1 %2 %3 %4 %5 為傳入的引數,具體的指令碼對應的不同引數和含義,後面的文章會介紹到。
對應的pre-lock.vbs中需要強調的是對於傳入引數的處理,其內容類似於如下:
set args = wscript.arguments
for i = 0 to args.count - 1
t=t+args(i)
next
svn hooks利用鉤子指令碼
在建立的svn倉庫的專案裡,有hooks資料夾,其中有這樣乙個檔案 這裡已post commit為例 post commit.tmpl 這是乙個模板檔案,字面意思就是在svn提交的的時候執行相關的指令碼操作。cp post commit.tmpl post commit 複製模板檔案 不要忘記給po...
SVN Hooks的介紹及使用
閱讀此篇文章你可以 對svn hooks有一定的了解 獲取兩個最常用的svn hooks案例 svn hooks介紹 hooks 鉤子,主要實現的功能就是在特定事件發生之前或者之後自動執行事先定義好的指令碼 來實現某些功能,類似於js中的監聽事件 mysql中的觸發器 django中的signals...
mysql 鉤子 svn鉤子的使用案例
svn鉤子的使用案例 我在這一篇博文中提到,svn鉤子指令碼是svn非常實用重要的功能,在工作中,會經常需要用到svn鉤子指令碼以實現除了svn自帶功能之外的附加功能,那麼這一篇博文,我們就舉例演示一下,svn鉤子是用來做什麼的,以及怎麼用。svn鉤子的功能 svn鉤子是乙個指令碼,它的具體寫法和l...