昨天裝了一下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 FilesSubversionin"/>
<!-- {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 FilesSubversionin
NotifySubject 表示郵件主題的模板,可以任意定義,且程序將用倉庫來替換{0}
UseSsl 表示是不是用SSL進行連接
xxx 表示發(fā)件人的郵件地址
yyy 表示發(fā)件服務器的地址
zzz 表示發(fā)件服務器需要登錄時的用戶名
ppp 表示登錄的密碼
如果公司的服務器不需要認證,ZZZ,PPP也可以設置為空
幾個參數配置完成后,存盤退出即可。
3.到版本庫的HOOK目錄下新建post-commit.bat或post-commit.cmd,內容如下:
set REPOS=%1
set REV=%2
F:SvnNotifysvnnotify.exe -repos "%REPOS%" -r %REV% -toxxx@gmail.com
exit 0
注意 上面的文件內容中F:SvnNotifysvnnotify.exe是布署的程序完整路徑repos指版本庫的路徑 –r值版本號 后是收件人的Email地址,通常是一個郵件組的地址,當然你可以用,進行隔開來實現發(fā)送給多人。
4.進行你可以進行測試了
你可以直接雙擊post-commit.bat文件,然后看是否可以接受到郵件。如果沒有接受到,建議你到DOS下進行調試。
5.何時會自動發(fā)送郵件通知?
當版本庫的內容發(fā)生改變時,SVN會自動運行post-commit.bat這個文件來實現郵件的自動通知。