上一篇提到了如何限制使用者送交沒有 Log 的檔案,其中用到的一些觀念(雖然我都沒說)也可以進一步讓使用者送交後會發信告知特定使用者或群組,這種發信的機制對於多人開發是一個很好的事情,因為這樣才可能知道別人在改什麼,才能了解專案的大致進度,為了達成這功能你還是必須要可以碰到 SVN Server,如果你碰的到那就看下去吧。
注意事項!此篇會同時介紹限制 Log 的方式,並且與上一篇介紹的衝突。請擇一使用
demo廢言觀念還是稍微說一下好了,在 SVN 執行完動作後會呼叫一些固定的批次檔,使用者可以利用這些批次檔來做其他事情,類似寫程式的事件這種感覺一樣,所以我們也可以利用這些時機來要求 SVN 寄信,但是這些檔案都是使用 Perl 或 Python 來撰寫,而且都不短….如果你對於這兩種語言不熟悉的話自己寫會有些許的難度,因此還是直接用人家寫好的最好啦
●這次要用的叫做 SubversionNotify
使用簡單方便又快速,當你把檔案抓下來http://sourceforge.net/projects/svn-notify/files/ 解壓縮會得到一個「SubversionNotify_v2.1.0」目錄,請將這目錄整個複製到你 SVN 檔案庫(Repository)同階層的地方
假設上述目錄為 X:
然後複製X:\ SubversionNotify 內的 pre-commit.bat、post-commit.bat、pre-revprop-change.bat 這三個檔案到你要讓他寄信的檔案庫(Repository)下的 hooks 資料夾,複製完畢後將這三個檔案都打開,你會看到他們都會去找 SubversionNotify.exe 請修改為正確的目錄(SubversionNotify.exe就放在你下載回來的那資料夾內)
接下來回到 X:\SubversionNotify 找到 SubversionNotify.cfg 這個檔案打開來編輯,這是一個 XML 檔案
官方有提供一個快速上手的連結讓你完成發送 Email 的功能
http://subversionnotify.com/SendingEMails.aspx
如果你還想限制 Log 的格式可以參考此篇
http://subversionnotify.com/EnforceLogMessage.aspx
(這裡的限制方式是使用了 Regex 所以會比上一篇介紹的更有彈性)
整個設定的參數在這裡
Http://subversionnotify.com/Documents/SubversionNotify_Manual.htm
因為每個人的情況與需求都不太相同,所以 demo 無法一一介紹了,煩請各位 K 一下官方文件,相當簡單的,當一切都設定完畢後就可以收到這種信
如果設定上有問題可以到 demo 的 Blog 來發問,我會盡量回答的
[鐵人賽] 讓 SVN Service 擁有發信的功能並且進階限制 Log 的樣式 | demo小鋪