昨天裝了一下SVN,對自動(dòng)化的腳本進(jìn)行版本控制,看到SVN可以實(shí)現(xiàn)郵件的自動(dòng)通知,所以也想試一下。在網(wǎng)上搜了一些資料,照著安裝,現(xiàn)在實(shí)現(xiàn)了。所以現(xiàn)在想寫一篇日志讓后來的新手對SVN郵件自動(dòng)通知有個(gè)參考。
以下是我參考goldpicker進(jìn)行的配置:
配置前提:安裝了.NET2.0 框架
1.將SvnNotify.rar下載到本地并解壓到任何位置,比如我這里解壓到F:SvnNotify
2.對SvnNotify.exe.config這個(gè)文件進(jìn)行配置(在解壓文件中),配置如下:
<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>
參數(shù)說明
SVNBasePath 表示SV程序BIN目錄 比如這里的目錄是 C:Program FilesSubversionin
NotifySubject 表示郵件主題的模板,可以任意定義,且程序?qū)⒂脗}庫來替換{0}
UseSsl 表示是不是用SSL進(jìn)行連接
xxx 表示發(fā)件人的郵件地址
yyy 表示發(fā)件服務(wù)器的地址
zzz 表示發(fā)件服務(wù)器需要登錄時(shí)的用戶名
ppp 表示登錄的密碼
如果公司的服務(wù)器不需要認(rèn)證,ZZZ,PPP也可以設(shè)置為空
幾個(gè)參數(shù)配置完成后,存盤退出即可。
3.到版本庫的HOOK目錄下新建post-commit.bat或post-commit.cmd,內(nèi)容如下:
set REPOS=%1
set REV=%2
F:SvnNotifysvnnotify.exe -repos "%REPOS%" -r %REV% -toxxx@gmail.com
exit 0
注意 上面的文件內(nèi)容中F:SvnNotifysvnnotify.exe是布署的程序完整路徑repos指版本庫的路徑 –r值版本號(hào) 后是收件人的Email地址,通常是一個(gè)郵件組的地址,當(dāng)然你可以用,進(jìn)行隔開來實(shí)現(xiàn)發(fā)送給多人。
4.進(jìn)行你可以進(jìn)行測試了
你可以直接雙擊post-commit.bat文件,然后看是否可以接受到郵件。如果沒有接受到,建議你到DOS下進(jìn)行調(diào)試。
5.何時(shí)會(huì)自動(dòng)發(fā)送郵件通知?
當(dāng)版本庫的內(nèi)容發(fā)生改變時(shí),SVN會(huì)自動(dòng)運(yùn)行post-commit.bat這個(gè)文件來實(shí)現(xiàn)郵件的自動(dòng)通知。