強制要求輸入送交說明的 Subversion Hook

剛用 C# 寫了一個 Subversion pre-commit hook,這個小工具能夠在開發人員執行 Subversion 送交命令時檢查是否有輸入送交說明(log message),如果沒輸入的話,就告訴 Subversion server 停止 commit 動作,並傳回錯誤訊息給用戶端,例如:


有時候,程式設計師在送交檔案時可能會忘記輸入 log message,或者根本沒有這個習慣,這樣的話,萬一將來哪天要回復到舊版本,就很難判斷究竟該回復到哪個 revision 了。希望這個小工具能夠改善此情況,讓開發人員養成每次送交檔案時輸入修改摘要的習慣。

使用方法

http://svntools.codeplex.com/ 的 Downloads 頁面下載 ChkCommitMsg-bin-v0.1.zip。將檔案解壓縮後,再依 README.txt 中的指示進行部署即可。

一點提醒:目前這個版本沒辦法讓你指定哪些資料夾才要強制輸入送交說明,也就是說,任何送交至檔案庫的動作都必須輸入 log message。如果你需要這個功能,可下載完整原始碼回去自行修改。

我在 Subversion v1.5 和 v1.6 環境上都測過 OK(CollabNet 打包的版本),如果是 Subversion 1.4 或更舊的版本,就不確定是否能正常運作了。

重新發明輪子?

其實在 tigris.org 網站上已經有提供類似的 pre-commit hook 程式,只是它們大部分是以 Perl 或 Python 寫成,如果要寫比較複雜的處理邏輯,還是用自己熟悉的 .NET 語言比較快。比如說,將來可以寫個 post-commit hook,每當送交完成時,檢查送交訊息中是否有 Issue Number,有的話,就直接傳遞訊息給 issue tracking system,以修改該問題的狀態(改為「已完成」或「待測試」);或者可以寫個工具,將某個日期範圍或 revision 編號範圍內的送交說明取出來,產生更新至 production 環境的批次指令--這持續整合的工作如果都依賴人工手動進行,不僅瑣碎、無趣,而且容易出錯。
Copyright © 2012. Huan-Lin 學習筆記 - All Rights Reserved
Powered by Blogger
Template Design by Cool Blogger Tutorials
Published by Templates Doctor