淺談SVN鉤子在研發流程管理中的應用
阿新 • • 發佈:2019-02-03
SVN鉤子介紹
svn鉤子的執行時機因其本身的作用而不同,但是一定都是由svn伺服器發起呼叫,並傳遞相應的引數到鉤子指令碼中。使用svnadmin建立版本庫後,其目錄結構一般如下所示:
svn鉤子指令碼存放在hooks資料夾中:
svn鉤子機制只提供了入口,但是鉤子的實現則由開發者自行編寫。
svn鉤子開發
為了讓鉤子指令碼能夠被svn呼叫並執行,鉤子指令碼需要具備兩個條件:
1. 可執行:具體來說,Linux下,鉤子指令碼需要具備可執行許可權;windows下,鉤子指令碼需要是.exe或者.bat檔案型別
2. 名稱去除.tmpl字尾
舉例來說,假設要實現“強制commit時寫入log資訊”,則需要修改pre-commit.tmpl檔案,若svn Server部署在Windows端,則把pre-commit.tmpl檔案修改成pre-commit.bat,並以bat檔案型別的語法編寫檔案內容;若部署在Linux平臺,則以bash指令碼語法編寫該檔案。
具體鉤子指令碼的實現不作詳細探討,提供幾個網址供參考:
鉤子配置與驗證
以修改log資訊鉤子為例,對應指令碼 pre-revprop-change.tmpl檔案。
在svn終端中,主要使用以下兩條命令:
檢視原有log資訊:
svn propget svn:log --revprop 檔名 -r 版本號
修改log資訊:
svn propedit svn:log --revprop 檔名 -r 版本號
此時會出現一個編輯器,編輯log資訊並儲存,退出,若出現以下資訊,則說明修改成功!
Set new value for property 'svn:log' on revision XXX