`
sharong
  • 浏览: 493285 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8718
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:13059
社区版块
存档分类
最新评论

svn提交时,邮件通知问题解决的经验谈

 
阅读更多
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防火墙等这些准备工作已经就绪,再去进行上层的开发或者配置,不要一味怀疑自己的程序或者上层执行有问题。当纠结于那台服务器可以正确执行,为啥这台就不行呢的时候,要充分考虑二者运行环境的差异,否则问题得不到很好的解决。
2
2
分享到:
评论
4 楼 sharong 2015-01-29  
yixiandave 写道
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

上次远程调试虚拟机然后手贱清除了iptables的所有白名单。。。

我们这里都直接stop了iptables防火墙。。。
3 楼 yixiandave 2015-01-28  
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

上次远程调试虚拟机然后手贱清除了iptables的所有白名单。。。
2 楼 sharong 2015-01-28  
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

嗯,确实有10+年经验了哦
1 楼 wwwcomy 2015-01-28  
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

相关推荐

    svn提交文件自动邮件提醒

    在IT行业中,版本控制系统是...总之,通过`commit-email.pl`钩子程序,我们可以轻松地在SVN提交时实现自动发送邮件提醒,从而提高团队协作的效率和透明度。只要正确配置和测试,这个功能就能在实际工作中发挥重要作用。

    svn服务器搭建及自动邮件通知的实现

    5. **错误处理**:为了增加健壮性,脚本应包含错误处理机制,当邮件发送失败时,记录日志并尝试重试或通知管理员。 通过以上步骤,你便可以在Windows环境下搭建一个具备自动邮件通知功能的SVN服务器。这个过程需要...

    SVN变更发送邮件通知Java实现

    当 SVN 仓库有提交、更新等操作时,这个程序会调用 `MailUtils` 来发送邮件通知。这可能涉及到 SVN 客户端库,如 `svnjavahl.jar` 或 `svnkit.jar`,这些库允许 Java 代码与 SVN 仓库进行交互,获取提交信息。 实现...

    Windows下SVN配置邮件通知

    通过配置SVN邮件通知功能,每当有人提交更改时,系统都会自动向指定的邮箱发送通知邮件,告知提交者、提交时间、修改内容等关键信息。这种方式不仅能够帮助团队成员保持对项目状态的关注,还能够减少沟通成本,提高...

    SVN自动发送邮件详细配置

    SVN的钩子是在特定事件(如提交)发生时执行的脚本。在SVN仓库的hooks目录下,创建一个名为`post-commit`的脚本,通常是bash脚本。这个脚本将在每次提交后执行。 3. **编写`post-commit`脚本** 脚本的主要任务是...

    SVN变化发送邮件(Python)

    标题 "SVN变化发送邮件(Python)" 描述的是一个使用Python编程语言实现的系统,该系统能够监控Subversion(SVN)版本控制系统中的变动,并在检测到任何更新或提交时自动发送电子邮件通知。这个功能对于团队协作尤其...

    svn提交设置--日志

    1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...

    svn提交日志导出工具v4.6

    《svn提交日志导出工具v4.6详解》 在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一...

    svn提交失败

    当你遇到“svn提交失败”的问题时,通常意味着在尝试将代码更改推送到 SVN 仓库时遇到了障碍。这可能是由于多种原因引起的,包括但不限于冲突、权限问题、网络问题或者是本地代码的问题。以下是一些可能的原因和解决...

    SVN提交时强制添加注释

    ### SVN提交时强制添加注释 #### 概述 在版本控制系统中,良好的提交习惯对于团队协作至关重要。Subversion(SVN)作为一种广泛使用的版本控制工具,在实际开发过程中经常需要对提交行为进行一定的规范和限制。...

    VisualSVN提交叮叮机器人通知脚本

    【VisualSVN提交叮叮机器人通知脚本】是一种在使用VisualSVN版本控制系统时,结合叮叮企业通讯工具实现自动化通知的解决方案。该脚本在每次执行 SVN 提交操作后,会触发一个后置脚本(post-commit),通过执行特定命令...

    window安装SVN并设置邮件提交转发

    实现SVN提交后自动发送邮件,可以通过编写一个post-commit钩子脚本来完成。该脚本会在每次提交后执行。脚本内容包括调用邮件发送程序如sendmail或Windows系统命令行下的邮件发送命令,并配置相应的邮件服务器地址和...

    svn提交日志导出工具v4.5

    【svn提交日志导出工具v4.5】是一款基于Java Swing界面的实用程序,专为开发者设计,用于轻松地导出Subversion(SVN)仓库的提交日志。该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够...

    SVN 邮件通知钩子脚本

    SVN 邮件通知钩子脚本,需要配合blat.exe来发送邮件

    svn常见问题及解决

    在使用SVN时,可能会遇到各种问题,以下是一些常见的问题及其解决方法: 1. **黄色感叹号(有冲突)**: 当你看到黄色感叹号时,表示你对一个文件的修改与他人在同一文件上的修改发生了冲突。解决冲突的方法包括: - ...

    SVN自动提交脚本 For Windows

    SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入

    SVN不能提交解决方案

    SVN 出现错误无法提交,通过删除SVN在本地SQLITE中的操作记录,来恢复提交功能。

    SVN邮件通知

    SVN邮件通知的功能,需要安装sed blat ,把sed和blat添加到system32里面 然后 把sed和blat的路径添加到系统环境变量里面。

    svn锁定问题解决

    svn提交,由于断电或者电脑死机等原因,导致再次打开软件,无法提交代码的解决办法

Global site tag (gtag.js) - Google Analytics