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