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防火墙等这些准备工作已经就绪,再去进行上层的开发或者配置,不要一味怀疑自己的程序或者上层执行有问题。当纠结于那台服务器可以正确执行,为啥这台就不行呢的时候,要充分考虑二者运行环境的差异,否则问题得不到很好的解决。
分享到:
相关推荐
在IT行业中,版本控制系统是...总之,通过`commit-email.pl`钩子程序,我们可以轻松地在SVN提交时实现自动发送邮件提醒,从而提高团队协作的效率和透明度。只要正确配置和测试,这个功能就能在实际工作中发挥重要作用。
5. **错误处理**:为了增加健壮性,脚本应包含错误处理机制,当邮件发送失败时,记录日志并尝试重试或通知管理员。 通过以上步骤,你便可以在Windows环境下搭建一个具备自动邮件通知功能的SVN服务器。这个过程需要...
当 SVN 仓库有提交、更新等操作时,这个程序会调用 `MailUtils` 来发送邮件通知。这可能涉及到 SVN 客户端库,如 `svnjavahl.jar` 或 `svnkit.jar`,这些库允许 Java 代码与 SVN 仓库进行交互,获取提交信息。 实现...
通过配置SVN邮件通知功能,每当有人提交更改时,系统都会自动向指定的邮箱发送通知邮件,告知提交者、提交时间、修改内容等关键信息。这种方式不仅能够帮助团队成员保持对项目状态的关注,还能够减少沟通成本,提高...
SVN的钩子是在特定事件(如提交)发生时执行的脚本。在SVN仓库的hooks目录下,创建一个名为`post-commit`的脚本,通常是bash脚本。这个脚本将在每次提交后执行。 3. **编写`post-commit`脚本** 脚本的主要任务是...
标题 "SVN变化发送邮件(Python)" 描述的是一个使用Python编程语言实现的系统,该系统能够监控Subversion(SVN)版本控制系统中的变动,并在检测到任何更新或提交时自动发送电子邮件通知。这个功能对于团队协作尤其...
1,svn提交时强制填写日志。 2,修改日志只能修改自己的。 压缩包包含两个文件:pre-commit,pre-revprop-change。 更新:解决提示显示的乱码问题。 使用方法:...
《svn提交日志导出工具v4.6详解》 在软件版本控制的世界里,Subversion(简称svn)是一款广泛使用的版本控制系统,它允许开发者跟踪和管理代码的修改历史,协同工作并保持代码库的一致性。对于svn的日常管理,有一...
当你遇到“svn提交失败”的问题时,通常意味着在尝试将代码更改推送到 SVN 仓库时遇到了障碍。这可能是由于多种原因引起的,包括但不限于冲突、权限问题、网络问题或者是本地代码的问题。以下是一些可能的原因和解决...
【VisualSVN提交叮叮机器人通知脚本】是一种在使用VisualSVN版本控制系统时,结合叮叮企业通讯工具实现自动化通知的解决方案。该脚本在每次执行 SVN 提交操作后,会触发一个后置脚本(post-commit),通过执行特定命令...
实现SVN提交后自动发送邮件,可以通过编写一个post-commit钩子脚本来完成。该脚本会在每次提交后执行。脚本内容包括调用邮件发送程序如sendmail或Windows系统命令行下的邮件发送命令,并配置相应的邮件服务器地址和...
SVN 邮件通知钩子脚本,需要配合blat.exe来发送邮件
在使用SVN时,可能会遇到各种问题,以下是一些常见的问题及其解决方法: 1. **黄色感叹号(有冲突)**: 当你看到黄色感叹号时,表示你对一个文件的修改与他人在同一文件上的修改发生了冲突。解决冲突的方法包括: - ...
"SVN提交时强制添加注释"这一策略是为了进一步提高项目管理的规范性和透明度,防止无注释或不明确的提交导致沟通混乱。 在Windows环境下,设置SVN强制添加注释可以通过修改SVN服务器配置来实现。主要涉及以下几个...
【svn提交日志导出工具v4.5】是一款基于Java Swing界面的实用程序,专为开发者设计,用于轻松地导出Subversion(SVN)仓库的提交日志。该工具利用了强大的SVNKit库,这是一个纯Java实现的SVN客户端库,使开发者能够...
SVN自动提交脚本,通过执行SVN Status命令来获取当前目录的Svn diff,通过替换SVN diff来将文件列表转换成Svn提交命令,最后对执行所有SVN命令来完成自动提交,可以用于SVN仓库的代码自动导入
SVN 出现错误无法提交,通过删除SVN在本地SQLITE中的操作记录,来恢复提交功能。
SVN邮件通知的功能,需要安装sed blat ,把sed和blat添加到system32里面 然后 把sed和blat的路径添加到系统环境变量里面。
svn提交,由于断电或者电脑死机等原因,导致再次打开软件,无法提交代码的解决办法
在这个"SVN管理代码经验谈"中,我们将深入探讨SVN的基本概念、安装与配置、日常操作以及最佳实践。 首先,理解SVN的核心概念至关重要。 SVN仓库是存储所有项目文件的地方,每个文件都有一个唯一的版本号,记录着...