1. 程式人生 > >淺談SVN鉤子在研發流程管理中的應用

淺談SVN鉤子在研發流程管理中的應用

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