51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 32322|回复: 40
打印 上一主题 下一主题

在Windows下实现SVN邮件自动通知

[复制链接]

该用户从未签到

跳转到指定楼层
#
发表于 2007-12-15 18:02:27 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
昨天装了一下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.cmd,内容如下:

set REPOS=%1
set REV=%2
F:\SvnNotify\svnnotify.exe -repos "%REPOS%" -r %REV% -to xxx@gmail.com
exit 0
注意 上面的文件内容中F:\SvnNotify\svnnotify.exe是布署的程序完整路径repos指版本库的路径 –r值版本号 最后是收件人的Email地址,通常是一个邮件组的地址,当然你可以用,进行隔开来实现发送给多人。

4.进行你可以进行测试了
你可以直接双击post-commit.bat文件,然后看是否可以接受到邮件。如果没有接受到,建议你到DOS下进行调试。

5.何时会自动发送邮件通知?
当版本库的内容发生改变时,SVN就会自动运行post-commit.bat这个文件来实现邮件的自动通知。

以上信息希望对大家有一点帮助!

[ 本帖最后由 lantianwei 于 2007-12-16 18:12 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-12 15:15
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    40#
    发表于 2015-10-12 15:17:39 | 只看该作者
    附件下载不了?
    楼主能不能重传下,多谢!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-2-25 10:40
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    39#
    发表于 2014-8-12 10:50:38 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    38#
    发表于 2013-5-24 15:08:41 | 只看该作者
    好贴要顶!~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
    发表于 2013-5-24 15:04:14 | 只看该作者
    怎么会这样呢?不会把?












    返利网登陆,淘宝网,最新电影,365电影网站
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    36#
    发表于 2012-11-22 14:35:57 | 只看该作者
    回复 30# meimei009_2009

    不知道我是否理解正确,你说的log输入字数限制,我的理解是有最小字数限制,比如10个字符等。否则不让提交。这个是另外的hook钩子脚本来实现的,脚本名:pre-commit.bat
    内容如下

    @echo off
    set svnlook="D:\Program Files\VisualSVN Server\bin\svnlook.exe"
    setlocal
    set REPOS=%1
    set TXN=%2
    rem check that logmessage contains at least 10 characters
    %svnlook% log "%REPOS%" -t "%TXN%" | findstr ".........." > nul
    if %errorlevel% gtr 0 goto err
    exit 0
    :err
    echo 提交被阻止,请填写关于此次修改的log信息(需大于10个字符),然后再重新提交! 1>&2
    exit 1
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
    发表于 2012-11-22 14:28:05 | 只看该作者
    回复 33# 君落枫


    首先说明我也是初学者,由cmd中的信息可以看出,你的-repos "" ,你的版本库路径为空。比如我的是test版本库,那么就需要填写如下
    set REPOS=%1
    set REV=%2
    D:\SVNNotify\svnnotify.exe -repos "C:\Repositories\test" -r "%REV%"
    -to  AAA@BBB.com.cn
    exit 0

    希望能解决你的问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    34#
    发表于 2012-11-22 09:26:42 | 只看该作者
    本帖最后由 fy_fuying 于 2012-12-18 15:11 编辑

    谢谢版主,已经成功发送邮件了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2012-8-14 11:29:46 | 只看该作者
    邮件的内容格式怎么定义呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2012-7-17 11:03:33 | 只看该作者
    楼主能帮我看一下,为什么会出这个问题么??跪求了

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2012-3-6 17:36:42 | 只看该作者
    有用,先下载
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2012-3-6 17:36:36 | 只看该作者
    有用,先下载
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2012-2-24 11:06:30 | 只看该作者
    请教高手,我原来的post-commit.bat脚本中是有对log输入的字数限制,现在我要怎么把邮件通知和原来的结合起来呢,
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2011-10-31 17:03:11 | 只看该作者
    好东西~正好需要~就看到了~支持楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2011-10-31 16:44:49 | 只看该作者
    最近在研究,学习了...
    多谢楼主分享。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2011-8-11 16:26:25 | 只看该作者
    核心就是使用SVN HOOKS吧,根据传递的参数,可以做很多事情啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25#
    发表于 2011-7-26 00:53:49 | 只看该作者
    tks!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2011-7-7 11:13:53 | 只看该作者
    我也是按照这个步骤设置的,可是却收不到邮件,不知道怎么回事
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2011-6-7 14:34:07 | 只看该作者
    邮件的格式怎么设置啊??求解答~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2011-3-29 17:29:51 | 只看该作者
    怎么不行啊,收不到邮件也不报错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2011-3-29 17:29:35 | 只看该作者
    怎么不行啊,收不到邮件也不报错
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 19:23 , Processed in 0.087388 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表