SVN hook mailer.py配置

SVN hook mailer.py配置,svn,post-commit-hook,Svn,Post Commit Hook,我尝试在subversion 1.6.12服务器上设置一个post-commit钩子,以便在提交时发送通知邮件 我已经在使用脚本mailer.py(由subversion团队在utils文件夹中提供)进行基本配置(每次提交后只需发送一封电子邮件),并且它运行良好 但是现在,我只想在/tags/文件夹中有提交时发送邮件 这是我的标准mailer.conf(运行良好): 这就是我试图为/tags/上的邮件配置的内容: [general] smtp_hostname = xxx.xxx.xxx.xxx

我尝试在subversion 1.6.12服务器上设置一个post-commit钩子,以便在提交时发送通知邮件

我已经在使用脚本mailer.py(由subversion团队在utils文件夹中提供)进行基本配置(每次提交后只需发送一封电子邮件),并且它运行良好

但是现在,我只想在/tags/文件夹中有提交时发送邮件

这是我的标准mailer.conf(运行良好):

这就是我试图为/tags/上的邮件配置的内容:

[general]
smtp_hostname = xxx.xxx.xxx.xxx

[defaults]
from_addr = myemail@domain.tld
to_addr = myemail@domain.tld
for_paths = .*/tags/.*
但我似乎误解了配置,因为它不起作用:我在所有提交(无论是否标记)上接收邮件

有什么想法吗?
谢谢。

最后,我使用utils文件夹中的另一个通知脚本(即使已弃用)解决了我的问题:commit-email.pl

在我的post-commit钩子工作中按预期使用它:

REPOS="$1"
REV="$2"

LC_ALL=C /usr/share/subversion/hook-scripts/commit-email.pl "$REPOS" $REV -m "tags/.*" -s "[TAGS]" --from noreply@domain.tld myemail@domain.tld

但是,如果有人有正确的配置来使用mailer.py做同样的事情,我仍然感兴趣

没有什么好方法可以做到这一点。py的设计使得任何与另一个组不匹配的提交都会转到默认组

中的文档对此进行了提示,但没有很好地解释:

始终选择[默认值]部分中指定的选项。这个 存在不匹配的回购协议与此无关。请注意,您可能 仍然使用for_repos值来提取有用的信息(更多信息 稍后)。任何没有for_repos的用户定义组,或包含 将为潜在用途选择一个匹配的回购

存储库标识的用户定义组的子集将进一步定义 基于for_路径选项进行优化。如果至少存在以下情况,则选择组: 提交中的一个路径(*)与for_paths正则表达式匹配。注 路径相对于存储库的根目录,而不是 有一个前导斜杠

for_回购协议的规定也适用于默认组的for_路径。也就是说,对于_路径而言,仅对变量提取有用

不做任何代码更改的一个选项是将[defaults]中的to_addr设置为如下地址devnull@example.com你把它扔掉。然后用一个不同的收件人设置一个不同的组,该地址将实际发送到某个地方

如果您愿意稍微修改mailer.py,可以通过在Config类的which_groups函数中注释掉以下两行来避免这种情况:

if not groups:
  groups.append((None, self._default_params))
作为Subversion的长期开发人员,我认为我们应该在mailer.py中添加一个选项,请求默认部分不生成邮件。此外,我们应该修改文档以更清楚地了解这种行为。

而不是:

for_paths = .*/tags/.*
试试这个:

for_paths = ^tags($|.*)
这是假设tags目录位于存储库的根目录下

如果您在项目下有标记,则

for_paths = ^<project name>/tags($|.*)
for_路径=^/tags($|*)

commit-email.pl被弃用,正如我在帖子中所说,我知道commit-email.pl被弃用,而不是mailer.py。我最初的问题是关于mailer.py的,但我没有找到让它工作的方法。。。
for_paths = ^<project name>/tags($|.*)