没有挂钩的Subversion电子邮件提交通知

时间:2013-10-26 21:33:09

标签: svn notifications svn-hooks working-copy

我希望收到有关svn存储库更新的电子邮件通知。我知道这个标准的解决方案是使用钩子,但我无法访问托管到存储库的机器。

现在,我已经写了一个单行代码来每小时更新一份工作副本,如果有新版本,我会给我发电子邮件。然而,这是原始的,我希望有一个解决方案,允许我过滤掉我自己的提交,在电子邮件中提供差异,在修订版上运行命令以识别构建错误,并在构建被破坏时以不同方式通知我,等

是否已存在一个干净的脚本,可以在不依赖钩子的情况下为SVN存储库的更新提供电子邮件通知,具有我描述的功能类型?

(我正在考虑使用Unix系统的命令行脚本或程序,在言论自由中免费。)

3 个答案:

答案 0 :(得分:1)

如果您使用的是Windows,则可能需要考虑使用CommitMonitor工具。

答案 1 :(得分:0)

您还可以查看CI服务器。它们已经设置为轮询源存储库,其中许多都有自己的通知系统。詹金斯是免费的,许多商业工具免费或廉价供个人使用。

答案 2 :(得分:0)

我现在使用一堆自定义脚本来检索最新版本的SVN存储库,如果它高于之前看到的版本,则通过电子邮件向我发送更改的差异。对于每个存储库,只有在我的一次更改之后第一次发生更改时才触发电子邮件,因此我不会为自己的更改获得差异,并且我不会因为其他人所做的更改而获得许多差异。具体来说,对于每个存储库,当发送diff时,警报会被静音,直到脚本看到我在存储库中提交,或者我手动调用脚本来重新激活此存储库上的警报。我的脚本还会缓存SVN错误,只有在连续发生的情况下才会抱怨它们,以避免每次出现阻止访问存储库的瞬态网络问题时收到一封邮件。

具体来说,我使用cron定期调用脚本svn-poll-myrepos,该脚本在myrepos中注册的所有SVN存储库上运行轮询。脚本svn-poll执行上述轮询,脚本svn-poll-drop可以手动调用以重新激活警报。