昨天裝了一下SVN,對自動化的腳本進行版本控制,看到SVN可以實作郵件的自動通知,是以今天也想試一下。在網上搜了一些資料,照着安裝,現在實作了。是以現在想寫一篇日志讓後來的新手對SVN郵件自動通知有個參考。
以下是我參考goldpicker進行的配置:
配置前提:安裝了.NET2.0 架構
1.将SvnNotify.rar下載下傳到本地并解壓到任何位置,比如我這裡解壓到F:\SvnNotify
2.對SvnNotify.exe.config這個檔案進行配置(在解壓檔案中),配置如下:
<configuration>
<appSettings>
<!-- SVNBasePath is the full path of svn path with the "\" -->
<add key="SVNBasePath" value=" C:\Program Files\Subversion\bin\"/>
<!-- {0}表示SVN倉庫 -->
<add key="NotifySubject" value="SVN REPOS {0} CHANGED"/>
<add key="UseSsl" value="false" />
</appSettings>
<system.net>
<mailSettings>
<smtp from="xxx" deliveryMethod="Network">
<network host="yyy" port="25" userName="zzz" password="ppp" defaultCredentials="false"/>
</smtp>
</mailSettings>
</system.net>
</configuration>
參數說明
SVNBasePath 表示SV程式BIN目錄 比如這裡的目錄就是 C:\Program Files\Subversion\bin\
NotifySubject 表示郵件主題的模闆,可以任意定義,且程式将用倉庫來替換{0}
UseSsl 表示是不是用SSL進行連接配接
xxx 表示發件人的郵件位址
yyy 表示發件伺服器的位址
zzz 表示發件伺服器需要登入時的使用者名
ppp 表示登入的密碼
如果公司的伺服器不需要認證,ZZZ,PPP也可以設定為空
幾個參數配置完成後,存盤退出即可。
3.到版本庫的HOOK目錄下建立post-commit.bat或post-commit.exe,内容如下:
set REPOS=%1
set REV=%2
F:\SvnNotify\svnnotify.exe -repos "%REPOS%" -r %REV% [email protected]
exit 0
注意 上面的檔案内容中F:\SvnNotify\svnnotify.exe是布署的程式完整路徑repos指版本庫的路徑 –r值版本号 最後是收件人的Email位址,通常是一個郵件組的位址,當然你可以用,進行隔開來實作發送給多人。
4.進行你可以進行測試了
你可以直接輕按兩下post-commit.bat檔案,然後看是否可以接受到郵件。如果沒有接受到,建議你到DOS下進行調試。
5.何時會自動發送郵件通知?
當版本庫的内容發生改變時,SVN就會自動運作post-commit.bat這個檔案來實作郵件的自動通知。
以上資訊希望對大家有一點幫助!