svn可以实现在commit提交时,使用hook钩子功能,向指定的邮箱发送提交注释comment/log及内容变化的邮件,以方便对之进行监控。
具体的描述就是,
1.当某个账号提交代码/文档时,使用钩子功能,调用仓库的hooks目录下的post-commit文件,实际上是执行一个shell文件,因此要求此文件具有执行权限
2.在shell文件中,通过显式的编码方式运行mailer.py,根据mailer.conf文件中配置的邮件服务器,from address,to address,reply to等,向指定的邮箱发送带svn提交时各种信息的邮件。
3.如果采用这种方式配置邮件通知功能,根据上面的描述,你的操作系统中需要有python运行环境,一般来说,版本应该不小于2.4.x
4.以上具体配置可参考官方wiki,链接如下:
https://ctf.open.collab.net/sf/wiki/do/viewPage/projects.svnedge/wiki/CommitMailerOnLinux
我按照官网给出的办法在一台linux测试机上配置之后,很快就可以收到邮件了,一切运行正常,然而,配置到公司内网的svn服务器上后,运行的时候不出任何错误提示,但就是收不到邮件。按道理说,linux系统下,执行shell命令没有任何错误提示,说明此命令运行是正确的。但收不到邮件,这是怎么回事?
于是开始比较两个操作系统的版本等信息,python的版本等等,发现是不完全一样。测试机使用centos 6.4, python 2.6.6版本,而svn服务器则是Redhat kiTangka 5.8,python 2.4.3.难道是因为这些原因?
至此有些一筹莫展,甚至一度想如果实在没有办法,只能是做数据迁移了。
就在这时,请教了一下公司的运维同事,事情开始峰回路转。运维首先是在svn服务器上ping了一下smtp邮件服务器地址,发现ping不通,而测试机则可以。
那么需要在svn服务器上配置dns解析,配置之后马上可以ping通邮件服务器了,但还是无法收到邮件。
运维同事这时又不慌不忙的开始查看svn服务器的sendmail服务是否正确,果然,这台机器的mail服务没有启动,不能发送/接收任何邮件,于是启动mail服务,然后。。。之前未发出去的邮件,已经像雪片般开始不断的延迟发送了。
至此全部配置成功!
这次问题的最终解决,给自己带来最大的经验教训就是,在linux系统中,其实在任何系统中都是这样,如果要用到网络环境以及某种服务时,比如发送邮件,提供web http服务等,一个非常重要的前提就是,在系统中基础网络,dns,ip配置,邮件服务甚至iptables防火墙等这些准备工作已经就绪,再去进行上层的开发或者配置,不要一味怀疑自己的程序或者上层执行有问题。当纠结于那台服务器可以正确执行,为啥这台就不行呢的时候,要充分考虑二者运行环境的差异,否则问题得不到很好的解决。
分享到:
相关推荐
svn提交自动邮件提醒 commit-email.pl+钩子程序
SVN变更发送邮件通知Java实现, svn只要一但变化便可发送邮件通知
SVN配置库发生变化时,会想设计邮件通知的人员发送邮件,告知所发生的变化。
Windows系统下如何搭建svn服务器; 实现SVN自动邮件提醒版本变化
1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...
配置SVN自动发送邮件,一般情况下我们希望在提交代码后, Subversion可以自动发送邮件给组里的每个成员。资源包含详细配置说明及要用到的工具脚本
SVN提交代码时格式填写,入门级教程,大家可以参考下,谢谢!
SVN 邮件通知钩子脚本,需要配合blat.exe来发送邮件
svn提交时叮叮机器人自动通知谁谁什么时间提交了什么内容
SVN变化发送邮件(Python实现) 实现了svn一但有变化将发送邮件
SVN提交时强制加注释,帮助项目的管理者更好的管理项目。
SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入
SVN邮件通知的功能,需要安装sed blat ,把sed和blat添加到system32里面 然后 把sed和blat的路径添加到系统环境变量里面。
svn的常见问题解决,可以帮助你解决常见的突发问题!
一款java swing界面导出svn日志的工具,采用svnkit开发,较早期版本添加支持历史svn url备份,添加按提交人过滤,添加导出文件的功能,详情见rar包中的readme文本文档
SVN提交必须输入备注信息插件 将该文件放置到仓库钩子文件夹中即可.
svn提交代码合并分支.txt
由于开发人员对日常工作难免提交svn文件,在项目发版的时候总是要记住自己修改了哪些文件 本工具是导出svn服务器提交日志,可以按照提交人过滤,提交日期过滤,并且可以生成修改文件清单并有去重功能。本版本是新...
本文档主要介绍在window下安装svn服务,通过apache访问与权限控制,以及svn钩子脚本的自动更新与提交格式限制和邮件转发功能